2017-01-19 45 views
0

很多時候我需要在我的Excel工作表上創建條件合併規則,而不是總是在相同的範圍內,根據寫入的內容設置文本顏色的格式。在Excel上爲文本值創建條件合成宏

最常見的情況是將範圍內文本「有效」的所有單元格變爲綠色和粗體,而「無效」變爲紅色和粗體。

我試圖使用開發工具欄上的記錄宏功能來創建這個宏,但它沒有工作,代碼是空白的。

因爲我對VBA沒有任何認識,所以我想知道是否有人可以給我一個創建這個宏的幫助。

定義:

  • 有沒有固定的範圍,它需要捕捉選擇的範圍;
  • 基於文本格式,如果「有效」綠色和粗體,如果「無效」紅色和粗體。
  • 僅限一張紙。

[解決]

Sub EffectiveNot() 
' 
' EffectiveNot Macro 
' 
    Dim rStart As Range 
    Set rStart = Selection 
    Selection.FormatConditions.Add Type:=xlTextString, String:="Effective", _ 
     TextOperator:=xlContains 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Font 
     .Bold = True 
     .Italic = False 
     .Color = -11489280 
     .TintAndShade = 0 
    End With 
    Selection.FormatConditions(1).StopIfTrue = False 
    Selection.FormatConditions.Add Type:=xlTextString, String:="Not effective", _ 
     TextOperator:=xlContains 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Font 
     .Bold = True 
     .Italic = False 
     .Color = -16776961 
     .TintAndShade = 0 
    End With 
    Selection.FormatConditions(1).StopIfTrue = False 
End Sub 

回答

1

你檢查你的ThisWorkbook - 模塊的任何機會呢?宏記錄器每天添加一個新的空模塊,然後將代碼轉儲到那裏...

這基本上是宏記錄器在我清理了一下之後提出來的。隨意將Selection更換爲更適合您使用的範圍對象。

Option Explicit 

Sub format() 

    With Selection 
     With .FormatConditions 
      .Delete 

      With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Not Effective""") 
       With .Font 
        .Color = vbRed 
        .Bold = True 
       End With 
       .StopIfTrue = False 
      End With 

      With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Effective""") 
       With .Font 
        .Color = vbGreen 
        .Bold = True 
       End With 
       .StopIfTrue = False 
      End With 
     End With 
    End With 

End Sub