2016-05-05 6 views
0

ファイルが20枚あり、各シートのデータが同じ位置に配置されています(20枚すべてがそれぞれミラーコピーです)。その他)、内容のみが異なります。現時点では、私は各シートを1枚ずつ更新しています。私は以下の3つの範囲を列挙しています.Unionを使用して書式設定していますが、For Each Cell Loopコードと闘う - どのようにすればいいですか?各ワークシートのP6セルに移動して10 * 5を計算します。セルT33に行き、100/10を計算する。セルq49とperfor 50-5などに行くか、範囲P6:T9に行き、20 * 10を計算します。私は、@のuser3561813のコードを使用して、わずかに私はあなたの正確なニーズと信じているものと一致するように変更シート上の異なる範囲で作業し、同じ範囲内で20枚の同じファイルを同じファイルで繰り返します。

Sub MultipleRange() 
    Dim r1 As Range, r2 As Range, r3 As Range 
    Dim r4 As Range, r5 As Range, r6 As Range 
    Dim myMultipleRange As Range 
    Dim ws As Worksheet 

    For Each ws In ThisWorkbook.Worksheets 
     With ws 

      Set r1 = .Range("P6:T9") 
      Set r2 = .Range("P28:T34") 
      Set r3 = .Range("P55:T55") 
      Set r4 = .Range("P6:T9") 
      Set r5 = .Range("P28:T34") 
      Set r6 = .Range("P55:T55") 
      Set myMultipleRange = Union(r1, r2, r3, r4, r5, r6) 
      myMultipleRange.Font.Color = vbBlue 

     End With 
    Next ws 
End Sub 

答えて

1

:あなたは次のトリックを行うことができますような

Sub MultipleRange() 
    Dim r1, r2, r3, r4, r5, r6, myMultipleRange As Range 
    Set r1 = Sheets("Sheet1").Range("P6:T9") 
    Set r2 = Sheets("Sheet1").Range("P28:T34") 
    Set r3 = Sheets("Sheet1").Range("P55:T55") 
    Set r4 = Sheets("Sheet2").Range("P6:T9") 
    Set r5 = Sheets("Sheet2").Range("P28:T34") 
    Set r6 = Sheets("Sheet2").Range("P55:T55") 
    Set myMultipleRange = Union(r1, r2, r3, r4, r5, r6) 
    myMultipleRange.Font.Color = vbBlue 
End Sub 
+0

どのようにこれを行うことができますか? "各ワークシート上のセルP6に移動し、10 * 5を計算するか、またはP6:T9に移動して20 * 10を計算します。 –

+0

迅速な返信をありがとうございます。私は実行時に1004エラーが発生し、 – Zakky

+0

をハイライト表示します。コードを実行すると、ランタイムエラー1004が発生し、myMultipleRange.Font.Color = vbBlueという行が黄色で強調表示されます。他のコードはすべて問題ありません。 – Zakky

1

コードをありがとうございます。

Sub MultipleRange() 

    Dim r1 As Range, r2 As Range, r3 As Range 

    Dim myMultipleRange As Range 
    Dim ws As Worksheet 

    For Each ws In ThisWorkbook.Worksheets 
'got help from http://stackoverflow.com/questions/20422356/loop-through-excel-sheets 
     If (ws.Name <> "Sum") And (ws.Name <> "graphs") And (ws.Name <> "comms") Then 

      With ws 

       Set r1 = .Range("P6:T9") 
       Set r2 = .Range("P28:T34") 
       Set r3 = .Range("P55:T55") 

       Set myMultipleRange = Union(r1, r2, r3) 
       myMultipleRange.Font.Color = vbBlue 
       r1 = 10 * 5 
       r2 = 100/10 
       r3 = 50 - 5 
      End With 
     End If 
     Next ws 

    End Sub 

PS:私はちょうど彼の答えを編集して、待つか、単に速く見えるの答えのために自分を答えるべきかわかりません。

関連する問題