2017-04-27 27 views
1

私の目標は、「合計:」という単語が含まれている文字列の色を変更することです。その後、ロジックを使用してセルB1とC1をハイライト表示します。私の現在のコードは、色を変更することができますが、私はロジックを使用するときは、セルがいっぱいではないと思う。条件付き書式設定からセルの色を変更します。

Sub Macro6() 
' 
' Macro6 Macro 
' 


    'ActiveWindow.SmallScroll Down:=-12 
Range("A1:A381").Select 
Selection.FormatConditions.Add Type:=xlTextString, String:="Totals:", 
TextOperator:=xlContains 
' 


Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
' With Selection.FormatConditions(1).Font 
    '  .Color = -16383844 
    ' .TintAndShade = 0 
    ' End With 
With Selection.FormatConditions(1).Interior 
    .PatternColorIndex = xlAutomatic 
    .Color = 13551615 '16777215 ' 
    .TintAndShade = 0 
End With 
'Selection.FormatConditions(1).StopIfTrue = False 
'lastrow = Sheet4.Cells(Sheet4.Rows.Count, "A").End(xlUp).Row 



If Sheet1.Cells(9, 1).Interior.Color = 13551615 Then '16777215 
MsgBox ("yes") 
Else 
MsgBox ("wrong") 
MsgBox (Sheet4.Cells(6, 1).Interior.Color) 
End If 






End Sub 
+0

オーケー書式設定を使用する..... – KyloRen

答えて

2

セルの.DisplayFormatプロパティを使用して、条件付き書式設定ルールの書式設定を取得する必要があります。

Option Explicit 

Sub Macro1() 
    With Worksheets("Sheet1") 
     With .Range("A1:A381") 
      .FormatConditions.Delete 
      With .FormatConditions.Add(Type:=xlTextString, String:="Totals:", TextOperator:=xlContains) 
       .Interior.Color = 13551615 '16777215 
       .SetFirstPriority 
       .StopIfTrue = False 
      End With 
     End With 
    End With 

    With Worksheets("Sheet1") 
     MsgBox CBool(.Range("A9").DisplayFormat.Interior.Color = 13551615) 
    End With 
End Sub 

ユーザー定義関数(別名UDF)では.DisplayFormatを使用できないことに注意してください。

+0

、私は表示形式を使用しカント以来を使用することができます気付いてしまったcares.i使用して終了するものです関数として、worksheetfunction.find( "totalals:")を使用できますか?私が望んでいる最終的な結果は、細胞を同定し、機能をプリフォームできることです。これにはどんな演算子が最適でしょうか? – andrew

+0

私はすべての行が異なることに注意する必要があります。しかし、それらはすべて共通の単語の合計を共有します。 – andrew

+0

.AutoFilterは、合計:またはCFRのいずれかの色で使用できます。 – Jeeped

0

ありがとうございました!あなたは私に多くの時間を救った。これは私が包む誰が最後の言葉は、総だったので、私は右の関数に

Sub Macro6() 

lastrow = Sheet4.Cells(Sheet4.Rows.Count, "A").End(xlUp).Row 
Dim A As Integer 
For N = 1 To lastrow 

A = 1 
If Right(Sheet4.Cells(N, 1), 7) = "Totals:" Then 
' MsgBox ("Found at" & Sheet4.Cells(N, 1)) 
'MsgBox (N) 
Sheet4.Cells(N, 1).Interior.Color = 13551615 

Else 
'nothing 
' MsgBox ("Found at" & Sheet4.Cells(N, 1)) 
' MsgBox (N) 
End If 
'A = A + 1 
Next 


End Sub 
関連する問題