我不知道我想做错了。 在H列中有一个像Bank,Chair Table这样的值。 如果在列中是表,那么我想运行一个案例,列C的情况。如果在列C中的值是10或20,则将其复制到列F.在其他情况下,行必须获得颜色。 现在每个r列C的值为<> 10,20收到消息,如果有H座H座或其他
代码有什么问题?
Dim i As Long
For i = 2 To Worksheets("Read DBF").Range("I" & Rows.Count).End(3).Row
If Worksheets("Read DBF").Cells(i, "I") = "OLN" Then
Select Case Worksheets("Read DBF").Cells(i, "C")
Case 10, 20, 30
Worksheets("Read DBF").Cells(i, "F") = Worksheets("Read DBF").Cells(i, "C")
Case Else
MsgBox "Wrong number"
End Select
End If
Next i
Sheet1.Activate
End Sub
答案 0 :(得分:2)
我强烈怀疑 10,20,30 值可能是伪装成数字的文本。 10
与"10"
不同。检查它们的默认单元格对齐文本左对齐,数字/日期右对齐。你可以测试两者。
Dim i As Long
With Worksheets("Read DBF")
For i = 2 To .Range("I" & Rows.Count).End(3).Row
If UCase(.Cells(i, "I").Value) = "OLN" Then
Select Case LCase(.Cells(i, "H").Value2)
Case "bank"
'do something for 'bank'
Case "chair"
'do something for 'chair'
Case "table"
Select Case .Cells(i, "C").Value2
Case 10, 20, 30, "10", "20", "30"
.Cells(i, "F") = .Cells(i, "C").Value2
Case Else
.Cells(i, 1).Resize(1, 26).Interior.Color = vbRed
MsgBox "Wrong number"
End Select
Case Else
'not 'bank', 'chair' or 'table'
End Select
End If
Next i
End With
我已将第二个Select Case statement嵌套到H列为' table' 的情况下。 '银行' 和'主席' 有占位符。
我还添加了With ... End With statement以使您的代码更具可读性。