【发布时间】:2017-07-14 09:36:46
【问题描述】:
我在下面的代码中是否正确使用了“OR”。有人可以帮帮我吗?
If Cells(i, 3).Value = "BRI TELECOM" Or "CHR INTERNATIO" Or "AG" Or "IMAG COMMUNICATIONS CORP" Then
【问题讨论】:
我在下面的代码中是否正确使用了“OR”。有人可以帮帮我吗?
If Cells(i, 3).Value = "BRI TELECOM" Or "CHR INTERNATIO" Or "AG" Or "IMAG COMMUNICATIONS CORP" Then
【问题讨论】:
不,你没有:
If Cells(i, 3).Value = "BRITISH TELECOM" Or _
Cells(i, 3).Value = "CHRISTIES INTERNATIO" Or _
Cells(i, 3).Value = "DTAG" Or _
Cells(i, 3).Value = "IMAGINE COMMUNICATIONS CORP" Then
另一种方法是使用Select Case 语句。如果您有很多条件要测试,这些特别有用:
Select Case Cells(i, 3).Value
Case "BRITISH TELECOM", _
"CHRISTIES INTERNATIO", _
"DTAG", _
"IMAGINE COMMUNICATIONS CORP"
'Do something
Case "Some other string", _
"and another string"
'Do something else
Case Else
'Do something if none of the other statements evaluated to True
End Select
Select Case 语句将等效于以下If 语句:
If Cells(i, 3).Value = "BRITISH TELECOM" Or _
Cells(i, 3).Value = "CHRISTIES INTERNATIO" Or _
Cells(i, 3).Value = "DTAG" Or _
Cells(i, 3).Value = "IMAGINE COMMUNICATIONS CORP" Then
'Do something
ElseIf Cells(i, 3).Value = "Some other string" Or _
Cells(i, 3).Value = "and another string" Then
'Do something else
Else
'Do something if none of the other statements evaluated to True
End If
与实际问题无关,但回应 cmets 中的进一步问题:
如果您的数据中有错误值,它们将无法与字符串进行比较,因此您需要先测试错误。
例如:
If IsError(Cells(i, 3).Value) Then
'Do whatever you want to do with error values such as #N/A
ElseIf Cells(i, 3).Value = "BRITISH TELECOM" Or _
Cells(i, 3).Value = "CHRISTIES INTERNATIO" Or _
Cells(i, 3).Value = "DTAG" Or _
Cells(i, 3).Value = "IMAGINE COMMUNICATIONS CORP" Then
'...
或
If IsError(Cells(i, 3).Value) Then
'Do whatever you want to do with error values such as #N/A
Else
Select Case Cells(i, 3).Value
Case "BRITISH TELECOM", _
"CHRISTIES INTERNATIO", _
"DTAG", _
"IMAGINE COMMUNICATIONS CORP"
'Do something
Case "Some other string", _
"and another string"
'Do something else
Case Else
'Do something if none of the other statements evaluated to True
End Select
End If
【讨论】:
i相交的单元格中的值是字符串值吗?还是可能是 #N/A 或 #DIV/0! 之类的错误值?