我正在尝试使用VBA将多个工作表合并到一个工作表上。如何告诉VBA仅合并可见的工作表?
我从http://www.mrexcel.com/forum/excel-questions/620641-using-visual-basic-applications-perform-consolidate-function.html中获取了Jerry Sullivan的答案,并对其进行了调整。MSDN站点在理解参数方面有所帮助,例如,范围数组必须包含R1C1样式的完全限定地址。
当然,您没有提供有关如何使用的详细信息,Consolidate
因此此答案是通用的。它使用Sum函数合并活动工作簿中所有可见工作表中的已用范围:
Sub Consolidate_Totals()
Dim ws As Worksheet
Dim sArray As Variant, i As Integer
ReDim sArray(1 To 1)
'---Make Array with Named Ranges to be Consolidated
For Each ws In ActiveWorkbook.Worksheets
If ws.Visible And ws.Name <> "Sheet1" Then
i = i + 1
ReDim Preserve sArray(1 To i)
sArray(i) = ws.UsedRange.Address(ReferenceStyle:=XlReferenceStyle.xlR1C1, external:=True)
End If
Next ws
If i = 0 Then Exit Sub
'---Consolidate using the Array
Sheets("Sheet1").Range("A1").Consolidate Sources:=(sArray), _
Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句