我是VBA的新手。我得到了这段代码,但是当它运行时,它显示了此错误消息:
参数数量错误或属性分配无效。
这是我从某个地方复制并编辑自己的代码:
Sub cl_macro2()
cl_macro2 macro '
Dim Concur As Worksheet, SunAccCode As Worksheet
Dim ConcurLastRow As Long, SunAccCodeLastRow As Long, x As Long
Dim SunAccCodeRng As Range
Set Concur = ThisWorkbook.Worksheets("Concur")
Set SunAccCode = ThisWorkbook.Worksheets("SunAccCode")
ConcurLastRow = Concur.Range("I" & Rows.Count).End(xlUp).Row
SunAccCodeLastRow = SunAccCode.Range("A" & Rows.Count).End(xlUp).Row
Set SunAccCodeRng = SunAccCode.Range("A1:C" & SunAccCodeLastRow)
For x = 2 To ConcurLastRow
On Error Resume Next
Concur.Range("J" & x).Value = Application.WorksheetFunction.VLookup(Concur.Range("I" & x).Value, SunAccCodeRng, 3, 0)
Next x
End Sub
答案 0 :(得分:0)
代码的第二行显示为:
cl_macro2 macro '
这似乎是一个(毫无意义的)注释,但是在行的开头没有撇号告诉VBA不要执行它。
实际上发生的是VBA试图像执行代码一样执行这一行。如所写,这意味着子程序正在尝试调用自身-并传递一个称为“宏”的参数(变量)。但是由于sub不接受任何参数,所以会出现错误。
要发表评论,您需要插入一个':
' cl_macro2 macro '
否则,只需删除整行。