PC Review


Reply
Thread Tools Rate Thread

Ambiguous Name detected?

 
 
davegb
Guest
Posts: n/a
 
      7th Dec 2007
I'm working on a macro that brings up a userform, gets the info from
the user, then goes back to the General Module to create a new
spreadsheet based on the user's input. I have the userform working
fine, but now I'm getting an "Ambigous Name detected" when I run the
macro. Here is the userform code:

Option Explicit

Private Sub btnCancel_Click()
End
End Sub

Private Sub btnTop21BOS_Click()

End Sub

Private Sub CheckBox1_Click()
bHdr = True
End Sub

Sub OKButton_Click()
Dim rFndCell As Range
Dim lStrDif As Long
Dim s1stCtyName As String

If btnTop10BOS Then lTop = 10 <======= AMBIGUOUS NAME DETECTED
If btnTop21BOS Then lTop = 21
If btnTop10MidBOS Then lTop = 3

If lTop = 0 Then
MsgBox "Please select the type of extraction (i.e., Top 10, BOS)
you want."
Exit Sub
End If

On Error Resume Next
Set rFirstData = Range(reDataStrt.Text)
If Err <> 0 Then
MsgBox "Invalid Range Selected"
reDataStrt.SetFocus
On Error GoTo 0
Exit Sub
End If

Set rFndCell = rFirstData.Rows(1).Find(What:="Adams", _
LookIn:=xlValues, _
LookAt:=xlPart, _
MatchCase:=False)
If rFndCell Is Nothing Then
MsgBox "The first row of data should include Adams County. " _
& "Please select the correct row."
Exit Sub
End If

s1stCtyName = rFndCell.Value

If UCase(s1stCtyName) Like "*ADAMS" Then
lStrDif = Len(s1stCtyName) - 5
s1stCtyName = Right(s1stCtyName, Len(s1stCtyName) - lStrDif)
Else
If MsgBox("No ADAMS county found in county list!",
vbRetryCancel) _
= vbCancel Then
Exit Sub
Else
Application.ScreenUpdating = True

End If

End If

If rFirstData Is Nothing Then
Exit Sub 'user hit cancel
End If

lLastCol = rFirstData.Columns(.Columns.Count).Column

If cbHdr = True Then bHdr = True

End If
uf1021Mid.Hide

End Sub

Here is the General Module code:

Option Explicit
Public bHdr As Boolean
Public lTop As Long
Public rFirstData As Range


Sub Extr10L()
Dim wbCtyData As Workbook
Dim oWS As Object
Dim wsTop10List As Worksheet
Dim wsCtyData As Worksheet


Set wsTop10List = ThisWorkbook.Worksheets("CtyLst")
Set wsCtyData = ActiveSheet
Set wbCtyData = ActiveWorkbook

'Test is Mark Top 10 workbook is active
If ActiveWorkbook.Name = ThisWorkbook.Name Then
MsgBox "You have selected the workbook that contains the macro." &
_
Chr(13) & "Please click Ok and select the correct workbook and " &
_
Chr(13) & "worksheet and restart the macro.", vbOKOnly
Exit Sub
End If

'TEST FOR SHEET NAMED "Top"
For Each oWS In wbCtyData.Sheets
If oWS.Name = "Top" Then
If MsgBox("A worksheet named Top already exists in this
workbook." _
& Chr(13) & "Please remove or rename it and run the macro
again.", _
vbOKOnly) = vbOK Then Exit Sub
End If
Next

lTop = 0
bHdr = False

uf1021Mid.Show


End Sub

The General Module code doesn't do much yet, except do some error
trapping and display the userform.

When I get the error, it highlight the "lTop =", including the = sign,
as though VBA has forgotten what an = sign means. Very confused by
this, as I've done the same a hundred times. I think it probably has
something to do with the userform maybe? I did search this group for
"ambiguous", but didn't find anything that seemed relevant. Any ideas
would be greatfully accepted.
 
Reply With Quote
 
 
 
 
Jim Thomlinson
Guest
Posts: n/a
 
      7th Dec 2007
Normally you get an ambigous name when you have two sub procedures with the
same name or if you have a control with the same name as a sub procedure or
function. Basically somewhere you have two things with the same name... When
you try to refer to it the compiler has no idea which one...
--
HTH...

Jim Thomlinson


"davegb" wrote:

> I'm working on a macro that brings up a userform, gets the info from
> the user, then goes back to the General Module to create a new
> spreadsheet based on the user's input. I have the userform working
> fine, but now I'm getting an "Ambigous Name detected" when I run the
> macro. Here is the userform code:
>
> Option Explicit
>
> Private Sub btnCancel_Click()
> End
> End Sub
>
> Private Sub btnTop21BOS_Click()
>
> End Sub
>
> Private Sub CheckBox1_Click()
> bHdr = True
> End Sub
>
> Sub OKButton_Click()
> Dim rFndCell As Range
> Dim lStrDif As Long
> Dim s1stCtyName As String
>
> If btnTop10BOS Then lTop = 10 <======= AMBIGUOUS NAME DETECTED
> If btnTop21BOS Then lTop = 21
> If btnTop10MidBOS Then lTop = 3
>
> If lTop = 0 Then
> MsgBox "Please select the type of extraction (i.e., Top 10, BOS)
> you want."
> Exit Sub
> End If
>
> On Error Resume Next
> Set rFirstData = Range(reDataStrt.Text)
> If Err <> 0 Then
> MsgBox "Invalid Range Selected"
> reDataStrt.SetFocus
> On Error GoTo 0
> Exit Sub
> End If
>
> Set rFndCell = rFirstData.Rows(1).Find(What:="Adams", _
> LookIn:=xlValues, _
> LookAt:=xlPart, _
> MatchCase:=False)
> If rFndCell Is Nothing Then
> MsgBox "The first row of data should include Adams County. " _
> & "Please select the correct row."
> Exit Sub
> End If
>
> s1stCtyName = rFndCell.Value
>
> If UCase(s1stCtyName) Like "*ADAMS" Then
> lStrDif = Len(s1stCtyName) - 5
> s1stCtyName = Right(s1stCtyName, Len(s1stCtyName) - lStrDif)
> Else
> If MsgBox("No ADAMS county found in county list!",
> vbRetryCancel) _
> = vbCancel Then
> Exit Sub
> Else
> Application.ScreenUpdating = True
>
> End If
>
> End If
>
> If rFirstData Is Nothing Then
> Exit Sub 'user hit cancel
> End If
>
> lLastCol = rFirstData.Columns(.Columns.Count).Column
>
> If cbHdr = True Then bHdr = True
>
> End If
> uf1021Mid.Hide
>
> End Sub
>
> Here is the General Module code:
>
> Option Explicit
> Public bHdr As Boolean
> Public lTop As Long
> Public rFirstData As Range
>
>
> Sub Extr10L()
> Dim wbCtyData As Workbook
> Dim oWS As Object
> Dim wsTop10List As Worksheet
> Dim wsCtyData As Worksheet
>
>
> Set wsTop10List = ThisWorkbook.Worksheets("CtyLst")
> Set wsCtyData = ActiveSheet
> Set wbCtyData = ActiveWorkbook
>
> 'Test is Mark Top 10 workbook is active
> If ActiveWorkbook.Name = ThisWorkbook.Name Then
> MsgBox "You have selected the workbook that contains the macro." &
> _
> Chr(13) & "Please click Ok and select the correct workbook and " &
> _
> Chr(13) & "worksheet and restart the macro.", vbOKOnly
> Exit Sub
> End If
>
> 'TEST FOR SHEET NAMED "Top"
> For Each oWS In wbCtyData.Sheets
> If oWS.Name = "Top" Then
> If MsgBox("A worksheet named Top already exists in this
> workbook." _
> & Chr(13) & "Please remove or rename it and run the macro
> again.", _
> vbOKOnly) = vbOK Then Exit Sub
> End If
> Next
>
> lTop = 0
> bHdr = False
>
> uf1021Mid.Show
>
>
> End Sub
>
> The General Module code doesn't do much yet, except do some error
> trapping and display the userform.
>
> When I get the error, it highlight the "lTop =", including the = sign,
> as though VBA has forgotten what an = sign means. Very confused by
> this, as I've done the same a hundred times. I think it probably has
> something to do with the userform maybe? I did search this group for
> "ambiguous", but didn't find anything that seemed relevant. Any ideas
> would be greatfully accepted.
>

 
Reply With Quote
 
davegb
Guest
Posts: n/a
 
      7th Dec 2007
On Dec 7, 9:59 am, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com> wrote:
> Normally you get an ambigous name when you have two sub procedures with the
> same name or if you have a control with the same name as a sub procedure or
> function. Basically somewhere you have two things with the same name... When
> you try to refer to it the compiler has no idea which one...
> --
> HTH...
>
> Jim Thomlinson
>
>
>
> "davegb" wrote:
> > I'm working on a macro that brings up a userform, gets the info from
> > the user, then goes back to the General Module to create a new
> > spreadsheet based on the user's input. I have the userform working
> > fine, but now I'm getting an "Ambigous Name detected" when I run the
> > macro. Here is the userform code:

>
> > Option Explicit

>
> > Private Sub btnCancel_Click()
> > End
> > End Sub

>
> > Private Sub btnTop21BOS_Click()

>
> > End Sub

>
> > Private Sub CheckBox1_Click()
> > bHdr = True
> > End Sub

>
> > Sub OKButton_Click()
> > Dim rFndCell As Range
> > Dim lStrDif As Long
> > Dim s1stCtyName As String

>
> > If btnTop10BOS Then lTop = 10 <======= AMBIGUOUS NAME DETECTED
> > If btnTop21BOS Then lTop = 21
> > If btnTop10MidBOS Then lTop = 3

>
> > If lTop = 0 Then
> > MsgBox "Please select the type of extraction (i.e., Top 10, BOS)
> > you want."
> > Exit Sub
> > End If

>
> > On Error Resume Next
> > Set rFirstData = Range(reDataStrt.Text)
> > If Err <> 0 Then
> > MsgBox "Invalid Range Selected"
> > reDataStrt.SetFocus
> > On Error GoTo 0
> > Exit Sub
> > End If

>
> > Set rFndCell = rFirstData.Rows(1).Find(What:="Adams", _
> > LookIn:=xlValues, _
> > LookAt:=xlPart, _
> > MatchCase:=False)
> > If rFndCell Is Nothing Then
> > MsgBox "The first row of data should include Adams County. " _
> > & "Please select the correct row."
> > Exit Sub
> > End If

>
> > s1stCtyName = rFndCell.Value

>
> > If UCase(s1stCtyName) Like "*ADAMS" Then
> > lStrDif = Len(s1stCtyName) - 5
> > s1stCtyName = Right(s1stCtyName, Len(s1stCtyName) - lStrDif)
> > Else
> > If MsgBox("No ADAMS county found in county list!",
> > vbRetryCancel) _
> > = vbCancel Then
> > Exit Sub
> > Else
> > Application.ScreenUpdating = True

>
> > End If

>
> > End If

>
> > If rFirstData Is Nothing Then
> > Exit Sub 'user hit cancel
> > End If

>
> > lLastCol = rFirstData.Columns(.Columns.Count).Column

>
> > If cbHdr = True Then bHdr = True

>
> > End If
> > uf1021Mid.Hide

>
> > End Sub

>
> > Here is the General Module code:

>
> > Option Explicit
> > Public bHdr As Boolean
> > Public lTop As Long
> > Public rFirstData As Range

>
> > Sub Extr10L()
> > Dim wbCtyData As Workbook
> > Dim oWS As Object
> > Dim wsTop10List As Worksheet
> > Dim wsCtyData As Worksheet

>
> > Set wsTop10List = ThisWorkbook.Worksheets("CtyLst")
> > Set wsCtyData = ActiveSheet
> > Set wbCtyData = ActiveWorkbook

>
> > 'Test is Mark Top 10 workbook is active
> > If ActiveWorkbook.Name = ThisWorkbook.Name Then
> > MsgBox "You have selected the workbook that contains the macro." &
> > _
> > Chr(13) & "Please click Ok and select the correct workbook and " &
> > _
> > Chr(13) & "worksheet and restart the macro.", vbOKOnly
> > Exit Sub
> > End If

>
> > 'TEST FOR SHEET NAMED "Top"
> > For Each oWS In wbCtyData.Sheets
> > If oWS.Name = "Top" Then
> > If MsgBox("A worksheet named Top already exists in this
> > workbook." _
> > & Chr(13) & "Please remove or rename it and run the macro
> > again.", _
> > vbOKOnly) = vbOK Then Exit Sub
> > End If
> > Next

>
> > lTop = 0
> > bHdr = False

>
> > uf1021Mid.Show

>
> > End Sub

>
> > The General Module code doesn't do much yet, except do some error
> > trapping and display the userform.

>
> > When I get the error, it highlight the "lTop =", including the = sign,
> > as though VBA has forgotten what an = sign means. Very confused by
> > this, as I've done the same a hundred times. I think it probably has
> > something to do with the userform maybe? I did search this group for
> > "ambiguous", but didn't find anything that seemed relevant. Any ideas
> > would be greatfully accepted.- Hide quoted text -

>
> - Show quoted text -


Thanks for your reply, Jim. I started to reply that I had figured out
that much, but couldn't find any dupes. Then I remembered I had taken
a stab at this project before, and had started a new module, using
many of the same variable names, so I had 2 open modules with some of
the same variables publicly declared. I remarked out the others and
the problem is gone.

Thanks as always!
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ambiguous name detected? Derrick Microsoft Excel Misc 7 8th Jul 2009 07:05 PM
Ambiguous name detected?? =?Utf-8?B?YXdyZXg=?= Microsoft Access VBA Modules 3 27th Oct 2006 03:34 AM
Ambiguous name detected Sue Microsoft Access Forms 1 22nd Jan 2004 06:04 PM
Ambiguous Name Detected Nigel Microsoft Excel Programming 11 26th Oct 2003 09:59 AM
Ambiguous Name Detected Kim Microsoft Outlook Printing 0 27th Aug 2003 09:56 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 07:55 AM.