【发布时间】:2015-11-16 20:01:40
【问题描述】:
我遇到了一个我无法弄清楚的主要问题 它告诉我我有一个重复的声明......但我没有! 我什至把变量改成了别的东西,它仍然这么说。 不幸的是,我的代码很长,所以我只粘贴给我错误的部分。 在第二行(dim c 作为整数)是我得到错误的地方 即使我将 C 更改为 D,我仍然会收到错误,不知道这怎么可能。 我搜索了一下,搜索显示我整个项目只有DIM C!!!!!!
任何想法,请我疯狂绝望.... 300 小时的编码让它在最后一个微小的简单命令上失败。
真的很感谢!
Dim Msg As String
Dim C As Integer
Dim PrinterName As String
C = 1
On Error GoTo MakePDFError:
ResumePrinting:
If C < 10 Then
PrinterName = "Verdun_Office on Ne0" & C & ":"
Else
PrinterName = "Verdun_Office on Ne" & C & ":"
End If
Application.ActivePrinter = PrinterName
ActiveWindow.SelectedSheets.PrintOut Copies:=qty, ActivePrinter:= _
"Verdun_Office on Ne01:", collate:=True
Worksheets("invoice excel").Activate
Application.ActivePrinter = PrinterName
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Verdun_Office on Ne01:", collate:=True
Exit Sub
MakePDFError:
C = C + 1
Resume ResumePrinting:
【问题讨论】:
-
你试过让 C 语言比单个字符更长吗?我建议
Dim cValue或类似的东西。 -
将“C”更改为“cVariable”之类的字符串,看看是否会发生。我猜 VB/Excel 不喜欢单个字符(也许它是 VB 代码中的“嵌入”变量?)。你在使用
option explicit(只是好奇)吗?一般来说,无论如何,使用“有意义”的变量名是一种很好的做法。查看您的代码,我们不知道C应该是什么。但是,如果您可能使用iRow或theRow等,那么它会更清晰,也可能会避免这个范围问题。 -
我假设您还没有在全球范围内声明
C?搜索该变量,但搜索模块,而不仅仅是过程。 -
删除 Dim C as Integer 然后右键单击 C 并选择定义,它将带您到任何其他声明。
-
这就是为什么你应该给变量命名以反映它们是什么的原因之一....Dim C 是可怕的做法。
标签: excel vba variables integer