|
Hirokさん、こんにちは
Hirokさん=YN63さんでしょうか?
>⇒ ここでのWith Sheetsは転記先のシートを指すのですか?
その通りです。
> r.Offset(,1).valueは"集計表"での営業所名の列で、シートの
> 異なるもの(内容)が同居して、よくコードが成り立つのが不思議です。
> どのように理解すると良いのでしょう?
たとえば、以下のようなコードにすると分かりやすいでしょうか?
For Each〜Next文でmyrにセットしたデータ範囲をA4セルから順に変数に
取得してループしています。
そのループの中で都度シート名をセットしていますので、転記先のシート
名の違っているものでも転記できているのです。
文章が思いっきり苦手な為、分かりにくいかもしれません。
すいません・・・^^;
Sub 順次選択貼付け()
Dim r As Range
Dim myr As Range
Dim dteDate As Date
Dim 転記先シート名 As String
With Sheets("集計表")
'日付の入力のある範囲をセット
Set myr = .Range("A4", .Range("A65536").End(xlUp))
'日付を変数に格納
dteDate = .Range("A1").Value
End With
'日付の入力のある範囲を1セルづつ繰り返し変数rにセットする
For Each r In myr
'営業所名がNullでない場合実行
If r.Offset(, 1).Value <> "" Then
'転記先のシート名が=営業所名なので日付の1列右のセルの値を
'シート名として指定
'転記先のシート名を取得
転記先シート名=r.Offset(,1).Value
With Sheets(転記先シート名)
'With Sheets(r.Offset(, 1).Value)
'指定シートのA列最終行+1に日付を転記
.Range("A65536").End(xlUp).Offset(1).Value = dteDate
'指定シートのC列最終行+1に売上高を転記
.Range("C65536").End(xlUp).Offset(1).Value = r.Offset(, 2).value
End With
End If
Next
End Sub
|
|