2016-06-27 1 views
0

Excelで単語を探して、そのセルを強調表示したいと思います.VBAを使用してどのように行うか。 私のコードがシート全体をハイライト表示しています。ここで私はExcelで単語を見つけて強調したいと思います。

はコード -

Sub Foreign_Lang_Converter() 

Sheets("Sheet2").Select 
Value = 0 
i = 1 
Do While (Cells(i, 2) <> "") 
Value = Value + 1 
i = i + 1 
Loop 
Count = 0 
For j = 1 To Value 

a = Cells(j, 1) 
b = Cells(j, 2) 
Sheets("Sheet1").Select 
Cells.Select 
    Selection.Find What:=a 
    With Selection.Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .ThemeColor = xlThemeColorAccent6 
     .TintAndShade = 0.599993896298105 
     .PatternTintAndShade = 0 
    End With 
Selection.Replace What:=a, Replacement:=b 
Sheets("Sheet2").Select 
Next j 
End Sub 
+0

そうでない場合、我々はそれが難しいあなたのエラーを発見する見つけるつもりですコード... – Dave

+0

こんにちはデイブ、私は質問を編集し、自分のコードを追加しました。 ご覧ください。 – snigdha

答えて

1

まず、read thisです。

編集:これはあなたの全体的なタスクの解決策ではありませんが、元のコードで説明した問題の解決策です(シート全体を着色しています)。

ここでの問題は、Selection.Find What:=aは選択を変更しないことです。範囲を返します(どこにもありません)。シート全体が選択されているので、次のステップでシート全体が色付けされます。試してみてください

With Sheets("Sheet1").Cells.Find(a) 
    With .Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .ThemeColor = xlThemeColorAccent6 
     .TintAndShade = 0.599993896298105 
     .PatternTintAndShade = 0 
    End With 
    .Value = b 
End With 

これは1つの発生を置き換えます。 .FindNextメソッドまたは条件付き書式を調べます。また、他の検索パラメータ(LookInLookAtSearchOrder、およびMatchByte)が保存されるため、それを設定する方がよい場合もあります。 (備考here参照)

編集:固定コード。今すぐ働かなければならない。

+0

Hi Dave、 このコードはエラーを示しています。 .Interiorと.Value = bにはエラーがあります。 希望の出力が得られません。つまり、sheet1の置換を強調表示していません。 – snigdha

+0

@snigdha Daveではありませんが、気にしません。常に表示されるエラーの種類を指定してください。このコードをワークシート上で実行すると、 'a 'の* occurenceを' b'に置き換え、そのセルの色を設定します。 – arcadeprecinct

0

私は、解像度、

は、コードは次のようになりました - あなたは試してみましたコードを投稿し、

まず
Sub Foreign_Lang_Converter() 

Sheets("Sheet2").Select 
Value = 0 
i = 1 
Do While (Cells(i, 2) <> "") 
Value = Value + 1`enter code here` 
i = i + 1 
Loop 
Count = 0 
For j = 1 To Value 

a = Cells(j, 1) 
b = Cells(j, 2) 
Sheets("Sheet1").Select 


    Cells.Select 
    Application.ReplaceFormat.Clear 
    With Application.ReplaceFormat.Font 
     .Subscript = False 
     .TintAndShade = 0 
    End With 
    With Application.ReplaceFormat.Interior 
     .PatternColorIndex = xlAutomatic 
     .Color = 5296274 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
    End With 
    Selection.Replace What:=a, Replacement:=b, LookAt:=xlPart, _ 
     SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
     ReplaceFormat:=True 

Sheets("Sheet2").Select 
Next j 
End Sub 
+0

これは 'Range.Find'メソッドより優れた解決策です。ただし、選択を使用しないでください。その詳細については、[this](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)を参照してください。 – arcadeprecinct

関連する問題