【发布时间】:2021-03-27 00:53:09
【问题描述】:
在MS Excel 中,我试图声明一些公共变量以在之后的几个模块中使用它们。但是我收到了这个错误:
检测到不明确的名称:datebck
此错误对我声明的所有公共变量均有效。
模块如下:
Option Explicit
Public LastColumnBck As Long
Public wsbck As Worksheet
Public datebck As String
Public linebck As String
Public TargetRowBck1 As Integer
Public TargetRowBck2 As Integer
Public StationRowBck As Integer
Public Sub FindLastStationColumnBck()
Dim excelfilename As String
excelfilename = "ERTP-Construction Tracking Sheet " & "(" & datebck & ")" & ".xlsx"
Set wsbck = Workbooks(excelfilename).Worksheets(linebck)
TargetRowBck1 = wsbck.Application.WorksheetFunction.Match("Sand filling", wsbck.Range("A:A"), 0)
TargetRowBck2 = wsbck.Application.WorksheetFunction.Match("Asphalt", wsbck.Range("A:A"), 0) - 1
StationRowBck = wsbck.Application.WorksheetFunction.Match("Main Activity", wsbck.Range("A:A"), 0)
LastColumnBck = wsbck.Cells(StationRowBck, wsbck.Columns.Count).End(xlToLeft).Column
End Sub
用户窗体代码:
Option Explicit
Private Sub CommandButton1_Click()
Unload UsrForm6
End Sub
Private Sub CommandButton2_Click()
datebck = TextBoxDateUsrForm6
linebck = ListBoxUsrForm6
Call Module20.Backfilling (*this is another module that should use public variables also*
End Sub
我之前尝试过这种类型的声明并且它们正在工作,但是在这种情况下,尽管代码结构完全相同,但缺少什么?
【问题讨论】:
-
所以错误基本上说 datebck 是重复的。你在别处定义了吗?也许搜索“datebck As”也许你在其他地方声明了它
-
是的,问题是由于将同一变量多次声明为公共变量而发生的。当我删除重复的定义时,一切正常。
-
请将我的答案标记为可接受的解决方案,以便其他访问者也能找到它
标签: excel vba variables public ambiguous