|
▼UO3 さん:
こんばんは。
>当初のレイアウトのシートを作り、そこで実行して、処理内容が意図したものかどうか
>それを確認願います。その結果を踏まえて、じゃぁ、新しい要件なら、こういったコードという
>回答をするという順番にしませんか?
そうですね。あの説明だけでは内容すべて伝わらないですよね。
申し訳ありません。
まず、先日のサンプルコードの結果です。
Sub Sample()
Dim c As Range
Dim sh As Worksheet
Application.ScreenUpdating = False
Set sh = Workbooks("Book2").Sheets("Sheet1")
With Workbooks("Book1").Sheets("Sheet1")
.Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("G1"), Unique:=True
.Range("H1").Value = .Range("G1").Value
For Each c In .Range("G2", .Range("G" & .Rows.Count).End(xlUp))
.Range("H2").Value = c.Value
sh.Cells.ClearContents
.Columns("A:E").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range("H1:H2"), CopyToRange:=sh.Range("A1"), Unique:=False
sh.PrintOut
Next
.Range("G1").CurrentRegion.Clear
End With
Application.ScreenUpdating = True
End Sub
こちらを
Sub Sample()
Dim c As Range
Dim sh As Worksheet
Application.ScreenUpdating = False
Set sh = Workbooks("Book2").Sheets("Sheet1")
With Workbooks("Book1").Sheets("Sheet1")
.Columns("D:D").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("AB1"),
^^^^^ ^^^^^^
Unique:=True
.Range("AC1").Value = .Range("AB1").Value
^^^^ ^^^^^
For Each c In .Range("AB2", .Range("AB" & .Rows.Count).End(xlUp))
^^^^^ ^^
.Range("AC2").Value = c.Value
^^^^
sh.Cells.ClearContents
.Columns("D:E").AdvancedFilter Action:=xlFilterCopy, _
^^
CriteriaRange:=.Range("AC1:AC2"), CopyToRange:=sh.Range("D1"), Unique:=False
^^^^^^^^ ^^^
sh.PrintOut
Next
.Range("AB1").CurrentRegion.Clear
^^^^^
End With
Application.ScreenUpdating = True
End Sub
のように変更したところ
Book2の元々あった罫線以外(文字・数字等)が消えて2枚同じものが印刷されました。
Book2も見たところ同じように罫線以外(文字・数字等)が消えていました。
質問ですが、Hは何を指しているのでしょうか?
Gの次のため、ACとしてしまいましたが、大丈夫でしょうか?
また、Eも同様何を指していますか?
Eについては良く分からないためそのままで登録しています。
厚かましく申し訳ありませんが、この行は何を実行しようとしているコードなのかを
説明して頂けると助かります。
お手数おかけし申し訳ありませんが、よろしくお願い致します。
|
|