【问题标题】:consolidate Array multiple sheets合并 Array 多张工作表
【发布时间】:2019-03-14 08:21:07
【问题描述】:

请告知我如何才能使用 Dim 表,因为有时可能有 300 多张表,而且并非每张表的表名都为 (sheet4)。我将不得不合并相同的数组 R10C1:R26C2

Sub Macro15()

Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim arrRange()

Set wb = ThisWorkbook
Set ws = wb.ActiveSheet

arrRange = Array("Sheet4!R10C1:R26C2", "Sheet4 (2)!R10C1:R26C2", "Sheet4 (3)!R10C1:R26C2", _
"Sheet4 (4)!R10C1:R26C2", "Sheet4 (5)!R10C1:R26C2", "Sheet4 (6)!R10C1:R26C2", "Sheet4 (7)!R10C1:R26C2", _
"Sheet4 (8)!R10C1:R26C2", "Sheet4 (9)!R10C1:R26C2", "Sheet4 (10)!R10C1:R26C2", "Sheet4 (11)!R10C1:R26C2", _
"Sheet4 (12)!R10C1:R26C2", "Sheet4 (13)!R10C1:R26C2", "Sheet4 (14)!R10C1:R26C2")

Set ws2 = wb.Sheets.Add

With ws2
    .Range("A1").Consolidate arrRange, xlSum, True, True, False
End With

Application.ActiveWindow.SmallScroll Down:=-228
ws.Columns("A:A").ColumnWidth = 23.88
ws.Columns("A:A").ColumnWidth = 41.25
ws.Columns("A:A").ColumnWidth = 47.88
ws.Columns("B:B").ColumnWidth = 16.5

End Sub

【问题讨论】:

  • 循环遍历所有工作表,在循环内,按索引引用工作表,连接工作表名称和范围,并放入数组。
  • @omegastripes 请你举个例子真的很有帮助我有非常基本的 vba 技能

标签: arrays vba worksheet-function


【解决方案1】:

未测试:但您可以尝试这样的方法来获取工作表名称,并在将工作表名称复制到数组中时将范围连接到它。

Dim sheets_Count As Integer
Dim sheets_Name() As String

sheets_Count = Sheets.Count

ReDim sheets_Name(sheets_Count)

For i = 1 To sheets_Count
    sheets_Name(i) = ActiveWorkbook.Sheets(i).Name
Next i

end sub

希望对你有帮助。

【讨论】:

  • 请指导我在将工作表名称复制到数组中时如何将范围连接到它。问候。
  • 您好,当工作表名称被复制到数组中时,您可以执行连接,如下所示: sheet_Name(i) = ActiveWorkbook.Sheets(i).Name & " R10C1:R26C2"
  • Option Explicit Sub Macro22() Dim wb As Workbook Dim ws As Worksheet Dim ws2 As Worksheet Dim arrRange() Dim sheet_Count As Integer Dim sheet_Name() As String Dim i As Integer Dim arrayrange sheet_Count = Sheets. Count ReDim sheet_Name(sheets_Count) For i = 1 To sheet_Count sheet_Name(i) = ActiveWorkbook.Sheets(i).Name Next i arrayrange = [R10C1:R26C2] Set wb = ThisWorkbook Set ws = wb.ActiveSheet arrRange = Array("sheets_Name (i)!arrayrange") Set ws2 = wb.Sheets.Add With ws2 .Range("A1").Consolidate arrRange, xlSum, True, True, False End With End Sub
  • 我现在已经把它放了,但它给了我一个错误,说无法打开合并源文件 'sheets_names(i)' 虽然我在活动工作簿中打开了工作表,工作表名称为 sheet4、sheet4(1)、sheet8、表 9 等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多