我想評估一個單元格的語句列表(例如,有頂部邊框,底部邊框等)並將結果傳遞給一個集合對象。但是,如果/ elseif在找到第一個true語句時停止計算,則對於Select Case也是如此。VBA - 當所有的語句超過1時,評估所有語句
有沒有其他方法可以用來做到這一點?
Dim BorderColl As Collection
Set BorderColl = New Collection
If RngCell.Borders(xlDiagonalDown).LineStyle <> xlNone Then
BorderColl.Add "xlDiagonalDown", LCase("xlDiagonalDown")
ElseIf RngCell.Borders(xlDiagonalUp).LineStyle <> xlNone Then
BorderColl.Add "xlDiagonalUp", LCase("xlDiagonalUp")
ElseIf RngCell.Borders(xlEdgeBottom).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeBottom", LCase("xlEdgeBottom")
ElseIf RngCell.Borders(xlEdgeLeft).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeLeft", LCase("xlEdgeLeft")
ElseIf RngCell.Borders(xlEdgeRight).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeRight", LCase("xlEdgeRight")
ElseIf RngCell.Borders(xlEdgeTop).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeTop", LCase("xlEdgeTop")
End If
有時答案是如此明顯,但頭腦已停止工作......非常感謝! –
雖然這是一個非常好的解決方案,但我會推薦使用「:」,因爲它會阻止您在兩個部分之間放置一個斷點,使其更難調試。 – aevanko
Issun,完全正確,我只是在這些情況下使用它,因爲邏輯非常簡單,查看集合的最後會告訴你什麼出了問題(如果有的話)。 –