Re:从多张纸上创建一张主表。
多表说明:包含许多行和列的表。列标题相同但行有所不同。每张表都是日期。
任务:从特定列中获取单个值(总是恰好是M列)。我想要的值是该列的总和。取这个求和值并插入主表。
到目前为止,我的尝试是:
Sub append_master_sheet()
Dim wAppend As Worksheet, wSheet As Worksheet
Dim LastRow As Long
Set wAppend = Worksheets("Master")
For Each wSheet In Worksheets
If wSheet.Name <> wAppend.Name Then
LastRow = WorksheetFunction.Max(3, wAppend.Cells(65536, 2).End(xlUp).Row)
wSheet.UsedRange.Resize(, 13).Copy Destination:=wAppend.Cells(LastRow, 2)
End If
Next wSheet
End Sub
1)。它需要所有13列而不是第13列。 (我看到这是因为我将其设置为13,因为我不知道如何循环前面的列并跳过它们只返回第13列数据(并且在此列中返回列的总数,而不是离散行项目
2)除了返回所有有问题的数据外,它实际上一直跳过M列中的最终值。
您能否建议如何将上述代码修改为
1)仅返回多个工作表(日历日期)中M列的总和值并插入到母版中。
感谢, Ñ
答案 0 :(得分:0)
这是你正在尝试的( UNTESTED )
就像我在上面的评论中提到的那样,请参阅有关如何查找列中最后一行的THIS链接。
我已对代码进行了评论,以便您在理解代码时不会遇到任何问题。但如果你这样做,只需回复:)
注意:我假设Col M中的最后一个单元格具有SUM
Option Explicit
Sub append_master_sheet()
Dim wAppend As Worksheet, wSheet As Worksheet
Dim wApLRow As Long, wShLRow As Long
Set wAppend = ThisWorkbook.Worksheets("Master")
'~~> Get the last row where the ouput should be placed
wApLRow = wAppend.Range("B" & wAppend.Rows.Count).End(xlUp).Row + 1
For Each wSheet In Worksheets
If wSheet.Name <> wAppend.Name Then
With wSheet
'~~> Fuind the last row in Col M which has the sum
wShLRow = .Range("M" & .Rows.Count).End(xlUp).Row
'~~> Copy over the values to Master Sheet
wAppend.Range("B" & wApLRow).Value = .Range("M" & wShLRow).Value
'~~> Increment the row for next output
wApLRow = wApLRow + 1
End With
End If
Next wSheet
End Sub