这个简单宏中的错误在哪里?

时间:2018-01-15 21:06:54

标签: excel vba excel-vba

我有这段代码:

Sub ADD_PEDIDO_AtualizaPagamentos()

If M6 = erro Then
MsgBox ("Erro!")

Else
Sheets("ADD_PEDIDO").[M9].Value = "Done!"

End If
End Sub

没有" IF"代码工作正常。但是在插入IF和Else之后,我总是收到错误代码。 正如你在上面的代码中看到的那样,M6单元提供了" OK"插入,但宏给我错误。

任何帮助?

Without Activate Macro After Activate Macro

4 个答案:

答案 0 :(得分:2)

您的编码中存在严重的语法问题。

您应该使用 工作表 .Range 方法引用范围。

Sub ADD_PEDIDO_AtualizaPagamentos()
    If Worksheets("ADD_PEDIDO").Range("M6") = "erro" Then
        MsgBox "Erro!"
    Else
        Worksheets("ADD_PEDIDO").Range("M9").Value = "Done!"
    End If
End Sub

答案 1 :(得分:2)

我不会说西班牙语,所以我不知道erro是否是另一种语言的VBA中的关键术语,但是如果你要检查实际的字符串错误,你应该改变你的if声明行到。还将M6与Range("")环绕在一起,这样它就知道你没有引用一个名为M6的变量。

If Range("M6") = "erro" Then

答案 2 :(得分:2)

UNTESTED:

尝试更换:

dplyr::mutate

使用:

dplyr::filter

答案 3 :(得分:1)

  1. 我认为您首先应该通过阅读this来了解如何在VBA中引用特定细胞或细胞范围 - 然后我认为您应该能够回答自己的问题。

  2. 如果没有if ...那么在你的第2行,它就变成了一个迄今未声明的变量M6的初始化(赋值),就像`x = ...'一样。

    1. Option Explicit添加到您编写的每个vba代码模块中可能是一种很好的做法;然后VBA会更慷慨地告诉你出了什么问题。