2017-10-31 14 views
1

ブックを作成し、テキストを太字にするためにマクロを開発しようとしています。ここでVBAマクロでセル範囲内の特定のテキストを検索し、太字にします。

は私が正常に動作され、現在持っているものです。

Sub Style_Worksheets() 

Dim ws As Worksheet 

For Each ws In Sheets 
    ws.Activate 

Dim sCellVal As String 

sCellVal = Range("A1").Value 
sCellVal = Range("A5").Value 
sCellVal = Range("A7").Value 
sCellVal = Range("B7").Value 

If sCellVal Like "*Workflow Name:*" Or _ 
sCellVal Like "Events*" Or _ 
sCellVal Like "Event Name*" Or _ 
sCellVal Like "Tag File*" Then 

Range("A1").Font.Bold = True 
Range("A5").Font.Bold = True 
Range("A7").Font.Bold = True 
Range("B7").Font.Bold = True 

End If 
Next ws 
End Sub 

は今、私が現在直面しています問題は、私は1つのワークシートでセルA16であることを特定のテキストを持っているということですが、別のワークシートにA10であります。

スタイリングを必要とするワークシートが100以上あり、特定のテキストはワークシートごとに異なるセルにあります。

マクロでA10とA16のセルの間に特定のテキストがあり、テキストが見つかった場合は太字にしたいと思います。

私は、その関連する場所に次を追加しようとしている:

sCellVal = Range("A10:A16").Value 

と:

sCellVal Like "Workflow Level Mappings*" Or _ 

と:

Range("A10:A16").Font.Bold = True 

...しかし、誰喜び。

誰でもお手伝いできますか?

おかげで、

+0

私はあなたの指定したテキストを探します 'Find'方法を検討してお勧めします - あなたが持っている場合は、ループする必要がありますように見えます検索するテキストのいくつかの代替ビット。 – SJR

答えて

2

問題の細胞を超えるだけのループ:

Sub Style_Worksheets() 

    Dim ws As Worksheet, sCellVal As String 
    Dim R As Range 

    For Each ws In Sheets 
     ws.Activate 
     For Each R In Range("A1:A16") 

      sCellVal = R.Text 

      If sCellVal Like "*Workflow Name:*" Or _ 
       sCellVal Like "Events*" Or _ 
       sCellVal Like "Event Name*" Or _ 
       sCellVal Like "Tag File*" Then 
        R.Font.Bold = True 
      End If 
     Next R 
    Next ws 
End Sub 
6

はこの打撃を与えます。完全にテスト済み。

Option Explicit 

Sub Style_Worksheets() 

    Dim TestPhrases() As String 
    TestPhrases = Split("Workflow Name:,Events,Event Name,Tag File", ",") 

    Dim ws As Worksheet 

    For Each ws In Worksheets 

     Dim CheckCell As Range 
     For Each CheckCell In ws.Range("A10:A16") 

      Dim Looper As Integer 
      For Looper = LBound(TestPhrases) To UBound(TestPhrases) 

       If InStr(CheckCell.Value, TestPhrases(Looper)) Then 
        CheckCell.Font.Bold = True 
        Exit For 
       End If 


      Next Looper 

     Next CheckCell 

    Next ws 

End Sub 
+0

私は> 0を省略することができると思います。 – sktneer

+0

@sktneer - '> 0 'を除いてコードをテストしてください –

+0

はい、それは動作します... – sktneer

関連する問題