[英]VBA: Creating Macro in Excel - Compile Error — 'Sub or function is not defined'
我有一本工作簿,上面有几张桌子。 我想将工作表中的所有行汇总到第一个主表中。 我希望它是动态的,这样当我将行添加到其他工作表中时,会将行添加到主表中。 这是我的Sub的代码:
Public Sub AggregateIssues()
For pgNum = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(pgNum).Name = "Main" Then
currSheet = ActiveWorkbook.Sheets(pgNum) 'Get Sheet
flag = True
RowIndex = 0
While currSheet.Tables(0).Rows(RowIndex).Cells(0).Text = Null Or currSheet.Tables(0).Rows(RowIndex).Cells(0).Text = ""
Row = currSheet.Tables(0).Rows(RowIndex)
ActiveWorkbook.Sheets("Main").Tables("MainTbl").Append (Row)
RowIndex = RowIndex + 1
Next
End If
Next pgNum
End Sub
当前,我收到一个编译错误: Sub or function is not defined
。 该错误将引发子名称。 这就是定义。 当然还没有定义。 为什么会这样?
注意:我认为该错误实际上是由continue
关键字引起的。 VBA中有一个continue
关键字吗?
continue
在VBA中不使用-你可以代替换行if
在主回路周围的代码。
break
也不是VBA语句-您可能希望使用Exit
代替它。
关于您的Update1,
问题出在您的While循环中。
正确的格式是这样的:
Do while [boolean expression]
'do something
Loop
更具体地说,在While
之前添加Do
,然后将第一个Next
更改为Loop
从技术上讲,您还可以出于怀旧原因使用我喜欢的这种结构:
While [boolean expression]
'do something
Wend
但是您应该使用Do ... Loop结构(请单击示例链接)
编辑:为澄清起见,请勿在实际代码中包含[]。 :-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.