不是操作员错误VBA

时间:2018-08-13 12:41:57

标签: excel vba excel-vba

快速问:

Sub Ex()
Worksheets("ABC").Activate
If Range("B10").Text IsNot "USA" Then
Range("B11").Value = "Domestic"
Else
End If
End Sub

我是VBA的新手,还没有掌握我在这里做错的事情。 我试图在B11中设置值,以便如果B10设置为除“ USA”以外的其他任何值,则其中的值必须为“ Domestic”。

奖金问题:理想情况下,如果我选择“美国”,我希望能够在B11中创建一个列表。如何通过数据验证做到这一点?

1 个答案:

答案 0 :(得分:3)

IsNot是VB.Net而不是VBA运算符。而是使用<>(在许多其他语言中对应于!=):

Sub Ex()
    Dim ws As Worksheet
    Set ws = Worksheets("ABC")
    If ws.Range("B10").Text <> "USA" Then
        ws.Range("B11").Value = "Domestic"
    End If
End Sub

我进行了其他一些更改:我引入了一个工作表变量,并使用它来限定Range()(而不是依赖于激活),然后放弃了虚假的Else