VBA Excel 2016 中未定义子或函数

Posted

技术标签:

【中文标题】VBA Excel 2016 中未定义子或函数【英文标题】:Sub or Function not defined in VBA Excel 2016 【发布时间】:2019-01-08 07:31:31 【问题描述】:

以下是我的功能:

我不知道为什么它不运行。这是我第一次使用 VBA - 我使用 MsgBox 运行了一个测试程序,并且 MsgBox 正确出现。我添加了所有可能的引用,这个 Sub 出现在我的宏列表中。只有在运行它时,我才会收到编译错误 - 并且断点在第一行代码上切换。任何和所有的帮助将不胜感激!

Sub Calculate()

Dim i As Integer
Dim j As Integer

For i = 2 To 13
    For j = 1 To 12
        If Cell(i, 3).Value = Cell(j, 16).Value And Cell(i, 2).Value = Cell(j, 15) Then
            Cell(i, 25).Value = (Cell(i, 10).Value) / (Cell(j, 23).Value)
        End If
    Next j

Next i

End Sub

【问题讨论】:

细胞不是细胞。 啊,非常感谢。这让我发疯了 在 VBE 中运行 Debug>Compile 之前总是编译好。如果您不限定单元格属于哪个工作表,您也可能会得到意想不到的结果。 使用Option Explicit 【参考方案1】:

正如 SJR 所说,它应该是 Cells 而不是代码中的单元格引用。

    Sub Calculate()

        Dim i As Integer
        Dim j As Integer

        For i = 2 To 13
            For j = 1 To 12
                If Cells(i, 3).Value = Cells(j, 16).Value And Cells(i, 2).Value = Cells(j, 15) Then
                    Cells(i, 25).Value = (Cells(i, 10).Value) / (Cells(j, 23).Value)
                End If
            Next j

        Next i

End Sub

【讨论】:

以上是关于VBA Excel 2016 中未定义子或函数的主要内容,如果未能解决你的问题,请参考以下文章

未定义子或函数过程

URLDownloadToFile 生成编译错误:未定义子或函数

错误:未定义子或函数 - 简单小计宏

BASIC 运行时错误。未定义子过程或功能过程

尝试通过单击按钮调用子程序并收到编译错误:未定义子或函数

VB 脚本 if 语句:未定义子