2017-05-25 62 views
0

我得到的錯誤runtime error 94 invalid use of null用下面的代碼:運行時錯誤94無效使用空的ColorIndex

Sub test() 
    With Selection.Interior 
     MsgBox (.ColorIndex) 
    End With 
End Sub 

我選擇由兩個合併單元格(水平的,並與ColorIndex 15顏色的電池(這是紫)。

我嘗試了其他細胞運行的代碼,它的運行良好,又有什麼會在這裏造成這個問題?

+0

我不能複製。我剛剛創建了場景並在即時窗口中運行'?Selection.Interior.ColorIndex',並返回了一個數字。但是,我的系統中15的ColorIndex是灰色的。也許有一個奇怪的格式方案導致問題?如果你只是嘗試'(.Color)',會發生什麼? –

+0

FWIW'.ColorIndex'附近的元素是多餘的。 [查看原因](https://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-always-use-parentheses#t=201705251504152022667)。 –

+1

如果選擇的範圍有超過1種顏色,那麼它不會工作 – Unknown

回答

0

當你試圖以顯示與MsgBox一個Null的錯誤發生。這起源於選擇兩個或更多個不同的細胞.Interior.ColorIndex

Selection.Interior.ColorIndex如果它們具有不同的顏色索引,將返回Null。我建議循環選擇 - 或將選擇傳遞給範圍變量 - 然後用MsgBox調用它們。

Dim rCell As Range 
For Each rCell In Selection 
    MsgBox rCell.Interior.ColorIndex 
Next 

Dim rCell As Range    '<~ variable that will loop 
Dim rSelection As Range   '<~ variable that will hold selection 
Set rSelection = Selection  '<~ pass selection to variable 
For Each rCell In rSelection 
    MsgBox rCell.Interior.ColorIndex 
Next 
+0

謝謝你的回答,它真的幫助。 – Ans

相關問題