2017-07-14 30 views
1

我想用excel表格中的宏突出顯示當前選中的行與模式(不是顏色,因爲該行上的某些單元格可能已被着色)。 我已經寫了下面的VBA宏,但是,當選中一個新單元格時,它將重置整個工作表的顏色。如果它清除了圖紙上的所有圖案(因爲沒有單元格使用圖案進行格式化),但即使指定僅清除圖案(使用ActiveSheet.Cells.Interior.Pattern = xlPatternNone),它也會清除顏色和邊框。使用VBA高亮選中的行而不改變Excel中的顏色

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    'remove past colors 
    ActiveSheet.Cells.Interior.Pattern = xlPatternNone 
    With Me 
     .Rows(Target.Row).Interior.Pattern = XlPattern.xlPatternChecker 
    End With 
End Sub 
+0

你有沒有試過指定font/fill/etc的默認設置?這將允許您清楚地更改所需的特定參數。另外,ActiveSheet.Cells.Interior指向整個工作表。你需要指定你想要工作的範圍。 – Cyril

+0

此外,你可以設置一個條件格式,它可以在Change Event上激活......我的想法是在單元格選擇上,活動行在列中會有一些值1,所以由Change Event應用的條件格式公式將所有行(任意)填充爲淡藍色,但不會更改基本顏色。您的更改事件條件格式化將從刪除條件格式開始,然後應用您想要的activerow。 – Cyril

回答

1

使用xlPatternAutomatic而不是xlPatternNone。請注意,不管怎樣,它也會移除網格(但不包括您添加的邊框)。

相關問題