繁体   English   中英

VBA:在Excel中创建宏-编译错误-“未定义子或函数”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM