ここには3つのワークシートがあります。vbaでこのダイナミックレンジを設定する方法は?
ケース:
私は一人一人のための日を合計します。結果はワークシート・レポートに表示されます。
日の情報は、ワークシートの日に格納されます。日は固定されていません。日の範囲は、例えば
row: that person row in worksheet-day
column :Worksheets("button").Cells(1, 2) to Worksheets("button").Cells(2, 2)
によるとすべき動的です:ワークシート、レポートの列A、ピーター、トムの日の合計、メアリーに
Worksheets("button").Cells(1, 2) 'store 3
Worksheets("button").Cells(2, 2) 'store 5
結果は列Bに対応して表示されるべきである。
その後、日の彼らの合計がワークシート日間で検索し、範囲内の合計(D:F「ワークシート( 『ボタン』の値をため))まで追加する必要があります
結果がでなければなりません:
Peter: 2
Tom: 3
Mary: 3
最後に、この結果はワークシートレポートの列Bに対応して表示されます。私はRNGがここに不正確だと思い
Sub gg()
row = Worksheets("report").Range("A" & Rows.Count).End(xlUp).row
Row2 = Worksheets("day").Range("A" & Rows.Count).End(xlUp).row
Dim rng As Range 'the range for sum
Dim row999 As Integer 'store the selected row index
For k = 2 To Row2 'check and store appropriate row
If Worksheets("report").Cells(1, k).Value = Worksheets("day").Cells(1, k).Value Then
row999 = ActiveCell.row
End If
Next k
rng = Range(Cells(Worksheets("button").Cells(1, 2), row999), Cells(Worksheets("button").Cells(2, 2), row999))
For j = 2 To row 'do the sum
Worksheets("report").Cells(2, i) = Application.WorksheetFunction.Sum(rng)
Next j
End Sub
:
は、ここに私のコードです。
rng = Range(Cells(Worksheets("button").Cells(1, 2), row999), Cells(Worksheets("button").Cells(2, 2), row999))
RNG:オブジェクト定義エラー – evabb
@evabb - あなたの元のコードでは、row999の値が(理由は「ピーター」<>「ジョン」、および「トム」<>「アラン」設定されていないされませんでした、 and "mary" <> "tom")、カラム0にアクセスしようとしていたので、エラーが発生しました。 – YowE3K
私はあなたのコードを直接コピーします.ERROR 91 https://msdn.microsoft.com/en-us/library/aa264506(v=vs.60).aspx Rng – evabb