我有2 If Not
的{{1}}语句,但代码仍然像常规or
语句一样运行。 Moncol是一个等于13的整数变量,if语句应该转到End If,而不是。当If
不等于12或13或14时,此代码应删除列。
Moncol
答案 0 :(得分:6)
尝试使用Select Case
,当有If
和Else
的多个方案时,它更容易使用和阅读。
Select Case MonCol
Case 12, 13, 14
' do nothing
Case Else
.Range(.Cells(1, lastcol - 1), .Cells(1, MonCol + 1)).EntireColumn.Delete
.Range(.Cells(1, DataType + 1), .Cells(1, MonCol - 4)).EntireColumn.Delete
End Select
修改1 :关注@Rory评论,您也可以使用Case 12 To 14
,这可能会派上用场,特别是对于包含大量值的范围,您可以使用Case 12 To 30
等等。
答案 1 :(得分:4)
您当前的If语句将始终为True。
你可以这样做:
With NewPayWS
If Not (MonCol = 12 Or MonCol = 13 Or MonCol = 14) Then
.Range(.Cells(1, lastcol - 1), .Cells(1, MonCol + 1)).EntireColumn.Delete
.Range(.Cells(1, DataType + 1), .Cells(1, MonCol - 4)).EntireColumn.Delete
End If
End With
答案 2 :(得分:2)
有多种方法可以处理它。还有一个
If moncol >= 12 and moncol <=14 then
'Do nothing
else
'delete code
end if