這裏有3個工作表。如何在vba中設置這個動態範圍?
案例:
我要總結的日子裏的每個人。結果顯示在工作表報告中。
天信息存儲在工作表日。這一天不是固定的。天的範圍是動態的,應根據
row: that person row in worksheet-day
column :Worksheets("button").Cells(1, 2) to Worksheets("button").Cells(2, 2)
例如:
Worksheets("button").Cells(1, 2) 'store 3
Worksheets("button").Cells(2, 2) 'store 5
在工作報告,彼得,湯姆,瑪麗天的總和的A列應計算在內。結果應相應顯示在B欄。
然後,他們的日子總和應在工作表日進行搜索並在範圍內,加起來總的(d:F「,因爲在工作表中的值(‘按鈕’))
的結果應該是:
Peter: 2
Tom: 3
Mary: 3
最後,該結果對應地顯示在工作表 - 報告列B上。
這裏是我的代碼:
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是不準確的位置。
rng = Range(Cells(Worksheets("button").Cells(1, 2), row999), Cells(Worksheets("button").Cells(2, 2), row999))
RNG該行:對象定義錯誤 – evabb
@evabb - 在原始代碼row999的值永遠不會被置位(因爲「彼得」 <>「約翰」和「湯姆」 <>「阿蘭」,和「mary」<>「tom」),所以你試圖訪問第0列,從而給出錯誤。 – YowE3K
我直接複製你的代碼.ERROR 91 https://msdn.microsoft.com/en-us/library/aa264506(v=vs.60).aspx爲Rng – evabb