2 つの別々のシートからデータを取得して 1 つのテーブルに配置するループを構築しようとしています。行を横切って最後までデータを配置し、1行下に移動して、テーブルの最後に到達するまで繰り返します。Changes
と列WTD
私とは、事後図に行くつもりです。データをドロップインしようとしてThis Year
いLast Year
ます。これが私が持っているコーディングです。
Sub MakeTable()
Application.ScreenUpdating = False
Dim gRange As Range
Dim i As Integer
Dim j As Integer
Dim baseSheet As Worksheet
Dim from1Sheet As Worksheet
Dim from2Sheet As Worksheet
Dim baseBaseCell As Range
Dim baseFrom1Cell As Range
Dim baseFrom2Cell As Range
Set baseSheet = Sheets("Chart")
Set from1Sheet = Sheets("Week")
Set from2Sheet = Sheets("WeekMinusYear")
Set baseBaseCell = Sheets("Chart").Range("B3")
Set baseFrom1Cell = Sheets("Week").Range("C2")
Set baseFrom2Cell = Sheets("WeekMinusYear").Range("C2")
For i = 0 To 4
For j = 0 To 12
If i = ((4 Mod 2) <> 0) Then
setRawData1
Else
setRawData2
End If
Next j
Next i
End Sub
Function setRawData1()
Dim baseSheet As Worksheet
Dim from1Sheet As Worksheet
Dim from2Sheet As Worksheet
Dim baseBaseCell As Range
Dim baseFrom1Cell As Range
Dim baseFrom2Cell As Range
Set baseSheet = Sheets("Chart")
Set from1Sheet = Sheets("Week")
Set from2Sheet = Sheets("WeekMinusYear")
Set baseBaseCell = Sheets("Chart").Range("B3")
Set baseFrom1Cell = Sheets("Week").Range("C2")
Set baseFrom2Cell = Sheets("WeekMinusYear").Range("C2")
'Sales
baseBaseCell.Offset(0, 0) = baseFrom1Cell.Value 'This Year
'Cost
baseBaseCell.Offset(0, 3) = baseFrom1Cell.Offset(0, 1) 'This Year
'Margin
baseBaseCell.Offset(0, 6) = baseFrom1Cell.Offset(0, 2) 'This Year
'Basis Points
baseBaseCell.Offset(0, 9) = baseFrom1Cell.Offset(0, 3) 'This Year
End Function
Function setRawData2()
Dim baseSheet As Worksheet
Dim from1Sheet As Worksheet
Dim from2Sheet As Worksheet
Dim baseBaseCell As Range
Dim baseFrom1Cell As Range
Dim baseFrom2Cell As Range
Set baseSheet = Sheets("Chart")
Set from1Sheet = Sheets("Week")
Set from2Sheet = Sheets("WeekMinusYear")
Set baseBaseCell = Sheets("Chart").Range("B3")
Set baseFrom1Cell = Sheets("Week").Range("C2")
Set baseFrom2Cell = Sheets("WeekMinusYear").Range("C2")
'Sales
baseBaseCell.Offset(0, 1) = baseFrom2Cell.Value 'Last Year
'Cost
baseBaseCell.Offset(0, 4) = baseFrom2Cell.Offset(0, 1) 'Last Year
'Margin
baseBaseCell.Offset(0, 7) = baseFrom2Cell.Offset(0, 2) 'Last Year
'Basis Points
baseBaseCell.Offset(0, 10) = baseFrom2Cell.Offset(0, 3) 'Last Year
End Function
これが私が持っているテーブルの例です。
画像の画質が悪くてすみません。すべての列が分割されている必要があります。これを達成するために、いくつかの異なる方法を試しました。今のように、昨年の情報を調べて正しい列にドロップしますが、最初の行のみです。私が得ることができるどんな助けも大歓迎です!