2017-04-06 98 views
0

所以我試圖找出一種方法做使用VBA下面的技巧:VBA Excel的刪除單元格沒有顏色和周邊小區

假設我們有一個巨大的Excel文件。

C500有一些文字。 M500有一個值,它可以有一個顏色填充,或者只是一個數字的默認白色單元格。 我想達到的目標是在M500沒有填充顏色時刪除C500和M500。

我知道這是一個簡單的任務,至少看起來像這樣,我知道它可能只需要幾行代碼即可解決。我仍然無法通過搜索找到我需要的谷歌或堆棧溢出,可能是因爲我的搜索技巧不佳或者我想要做的事情非常具體。

任何幫助將深受讚賞,我真的很喜歡看到任何類似的宏觀網站,我可以用作參考。對不起,如果這個問題已經回答。

+1

宏刪除取決於填充顏色的單元? – Alfabravo

+0

是的,這是我得到的主要問題。 –

+0

但是!我希望它刪除讓我們說M500和C500在同一時間,根據M500顏色 –

回答

1

我正在重寫此答案,因爲需求需要迭代爲範圍中的每個單元格定義的任何FormatCondition以及其他單元格值。可以找到一個簡潔的方法,例如,here。基本上它由以下部分組成:

For X = 1 To Cell.FormatConditions.Count 
    With Cell.FormatConditions(X) 
     If .Type = xlCellValue Then 
     ... 
     If CellInterior Then 
      DisplayedColor = IIf(ReturnColorIndex, Cell.Interior.ColorIndex, Cell.Interior.Color) 
     Else 
      DisplayedColor = IIf(ReturnColorIndex, Cell.Font.ColorIndex, Cell.Font.Color) 

探索單元格的不同方式來定義填充顏色。

所以,你應該在範圍迭代

Dim rng As Range, cell As Range 
Set rng = Range("M500:M550") 
For Each cell In rng 
    rem check the filling with the method in the link 
    rem if it's the colorindex you want 
    rem cell.Value = '' 
    rem Also, get the row number and delete content of range ("C5XX") 
Next cell 
+0

好的,非常感謝。你能評論這個(documenti它)一點,所以我可以更好地理解它? (因爲我會用很多我想)更具體地說,我想知道什麼 項目(1) 是指。我想要的是檢查列M的值,例如500到550,其中包含背景顏色,如果它們沒有刪除它們以及C500 C500中的任何數據。我怎樣才能使用這個命令? –

+0

非常感謝! –