我遇到了一个我无法弄清楚的重大问题 它告诉我我有一个重复的声明....但我没有! 我甚至将变量改为其他东西,它仍然说出来。 不幸的是我的代码很疯狂所以我只是粘贴给我错误的部分。 在第二行(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:
答案 0 :(得分:0)
这可能是由于您的变量名称为C
。正如评论中所指出的,变量的最佳实践(在VB中,以及一般的编程)是使用对用户有意义的名称。 C
没有告诉我们什么。看起来您正在使用它来存储行值,所以为什么不使用xRow
或iRow
(注意:不要使用Row
因为这是VB中的特殊字)?
仔细检查C
是否未在全球范围内声明,并将其(以及所有实例,请参阅评论中的@ Nathan_Sav建议)更改为其他内容,例如iRow
。
答案 1 :(得分:0)
今天这发生在我身上,我的问题是调用它后我变暗了(不是仍然变暗)
示例
Sub Dim_Duplicate()
VarD=23
'a lot of code here, so you not remember use the VarD before
Dim VarD as Integer
End Sub
答案 2 :(得分:0)
在我的情况下,这是因为Dim语句的块在过程中太低了。 我将它们移到顶部,一切都很好。我没有在Dim语句之前调用变量。它只是不喜欢在子例程的顶部附近没有得到想要的关注!他们对这些Dim语句很敏感。