2016-08-21 86 views
0

我想引用我的程序中的一行來改變它的內部顏色,我可以做整行,但只有一列數據時看起來馬虎(整行被突出顯示爲灰色即使有一列數據,也可以到頁面末尾)。所以我試圖使用一系列行尾,但我得到了對象失敗錯誤的範圍。對象範圍全局失敗

ws1.Rows(i).Copy 
ws4.Cells(z, 1).PasteSpecial 
'ws4.Rows(z).Interior.Color = rgbLightGrey -----Comment----- 
ws4.Range(z, Range(z).End(xlToRight)).Interior.Color = rgbLightGrey 

的註釋行是我在用了,但我想實現行方法的末尾。

回答

0

在您的代碼中,z看起來是整數(或長整數),而不是範圍參考。

用途:

ws4.Range(ws4.Cells(z, 1), ws4.Cells(z, 1).End(xlToRight)).Interior.Color = rgbLightGrey 

編輯:剛纔我注意到,你說,你只有一列數據。如果是這樣,則上述代碼將不起作用,因爲.End(xlToRight)將在單元格ws4.Cells(z, 1)的右側找到第一個非空單元格,並停止在該行的末尾。

如果你只是想色彩的單個單元格,使用方法:

ws4.Cells(z, 1).Interior.Color = rgbLightGrey 

下一個編輯,基於註釋:

要選擇列A,並在最後一個非空單元格之間的範圍內該行使用:

ws4.Range(ws4.Cells(z, 1), ws4.Cells(z, ws4.Columns.Count).End(xlToLeft)).Interior.Color = rgbLightGrey 
+0

謝謝,它不會再出錯了。但是,我有時候會有空行數據的行,需要內部顏色。所以,我需要一些東西來關注行的末尾,因爲在行空白行結束後,會有更多的數據,最有可能的是,它們都需要作爲一個大行突出顯示。不知道如何解決這個問題。順便說一下,一行中不應該有多於4列的數據。所以數據之間最大的差距是4列。 – rdan1

+0

@ rdan1 - 編輯答案以迎合設置單個單元格的顏色,或設置整行的顏色直到最後一個非空白單元格。 – YowE3K

+0

好吧,我有最後使用的數據列中有一個空格的行,所以我刪除了.End()部分,並使用了我在程序中早先設置的columnscount,現在一切都很順利:D。謝謝你教我,我需要引用一個範圍而不是整數。 – rdan1