我想评估一个单元格的语句列表(例如,有顶部边框,底部边框等)并将结果传递给一个集合对象。但是,如果/ 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,完全正确,我只是在这些情况下使用它,因为逻辑非常简单,查看集合的最后会告诉你什么出了问题(如果有的话)。 –