2

同じ最初の行をすべて含む 30 枚のシートを含む Excel ファイルを取得しました。シート 1 の最初の行をコピーして既存のすべてのシートに貼り付けるコード/方法を探しています。

行は定期的に変更されるため、この方法で調整する必要があるのは 1 回だけです。

4

4 に答える 4

4

これを行うために使用できます.FillAcrossSheets

Sub CopyToAllSheets()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Sheets.FillAcrossSheets ws.Range("1:1")
End Sub

オプションの型パラメーターを使用して、コピーするものを指定できることに注意してください。

  • 内容とフォーマットの両方をコピー =xlFillWithAll
  • コンテンツのみをコピー =xlFillWithContents
  • コピー形式のみ =xlFillWithFormats

デフォルトは ですxlFillWithAll。他のオプションのいずれかを使用する場合は、次のようにします。

' copy contents
Sheets.FillAcrossSheets ws.Range("1:1") xlFillWithContents

また

' copy formats
Sheets.FillAcrossSheets ws.Range("1:1") xlFillWithFormats

ワークブックのすべてのシートにコピーしたくない場合は、次のようにターゲット シートのリストを指定できます。

Sub CopyToSpecificSheets()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim targetSheets As Variant

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    ' the sheet we are copying from must be included in the array
    targetSheets = Array(ws.Name, "Sheet2", "Sheet4")
    wb.Sheets(targetSheets).FillAcrossSheets ws.Range("1:1")
End Sub
于 2013-09-02T13:47:25.447 に答える
0

標準の 3 枚のシートが設定されていると仮定すると (Sheet1、Sheet2、Sheet3)、簡単な方法で実行できます。

シート 1 ですべての変更を行い、次にシート 2 をクリックし、Shift + シート 3 をクリックします。

セル A1 に「=sheet1!a1」と入力します。

必要なだけコピーします。

シート 1 を選択 (グループ化を解除)

これで、シート 2 と 3 の一番上の行が同じになります。これは、Excel がサポートする数のシートで機能します。したがって、sheet2 をクリックしてから、Shift キーを押しながらシート 50 をクリックすると、シート 2 からシート 50 までの範囲のすべてのシートが入力されます。

于 2013-09-02T13:43:30.197 に答える
0

次のようなものを検討してください。

Sub qwerty()
    Dim r As Range
    Set r = Sheets(1).Range("1:1")
    For n = 2 To Sheets.Count
        r.Copy Sheets(n).Range("A1")
    Next n
End Sub
于 2013-09-02T13:43:43.973 に答える