Excel VBA,Office2016。我有几行很长的代码,我想在Or / And运算符之前或之后对其进行分解。但是,当我执行此操作后,VBA将它们移到行外之后将它们移到怪异的地方。 (如果我做错了这个问题,或者如果这是一个愚蠢的问题,我很抱歉,这是编码和堆栈的新知识)
这是我输入的内容:
Sub testhere()
If [Table1].Cells(1, [Table1[Referral Type]].Column).Value = "T" Or _
[Table1].Cells(1, [Table1[Referral Type]].Column).Value = "TE" Then
MsgBox ("OK")
这是Excel VBA将其更改为:
Sub testhere()
If [Table1].Cells(1, [Table1[Referral Type]].Column).Value = "T" Or [Table1 _
].Cells(1, [Table1[Referral Type]].Column).Value = "TE" Then
MsgBox ("OK")
将行继续放置似乎很奇怪。有人知道如何避免这种情况吗?
答案 0 :(得分:0)
从稍有不同的方向解决此问题并完全避免连续行,您可以使用:
Select Case
-简化了IF/OR
。Sub Test1()
Select Case [Table1].Cells(1, [Table1[Referral Type]].Column).Value
Case "T", "TE"
MsgBox "OK" ' Note that you don't need parentheses around "OK"
End Select
End Sub
ListObject
和ListColumn
变量而不是引用[Table1]
和[Referral Type]
Sub Test2()
Dim myTable As ListObject
Dim referralTypeCol As ListColumn
Set myTable = ThisWorkbook.Sheets("Sheet1").ListObjects("Table1")
Set referralTypeCol = myTable.ListColumns("Referral Type")
Select Case referralTypeCol.DataBodyRange.Cells(1).Value
Case "T", "TE"
MsgBox "OK"
End Select
End Sub