问题描述
我需要一个合并脚本,该脚本将扫描每个选项卡中的每一行,并按顺序将该数据填充到新的主文件中。
例如:
主文件将具有:
- 第2行以及工作表1中的第2行数据
- 第3行以及工作表2中的第2行数据
- 第4行,包含工作表3中的第2行数据
- 第5行以及工作表1中的第3行数据
- 第6行和第2页中的第3行数据等。
下面的脚本将复制工作表数据并将其合并到一个主工作表中,但是无法按行对数据进行排序。关于如何进行调整以满足我的需求的任何建议?
Public Sub MergeTabs()
'Merges selected tabs (or all visible tabs if only 1 selected) in current workbook into a new tab
Dim i As Integer,wb As Workbook,w As Window,wsTo As Worksheet,wsFrom As Collection 'Worksheet collection
Dim strScope As String,strNewTab As String
Dim raTarget As Range
Set wb = ActiveWorkbook
Set w = ActiveWindow
Set wsFrom = New Collection
If w.SelectedSheets.Count = 1 Then
For i = 1 To wb.Worksheets.Count
If wb.Worksheets(i).Visible Then wsFrom.Add wb.Worksheets(i)
Next
strScope = "ALL VISIBLE"
Else
For i = 1 To w.SelectedSheets.Count
If w.SelectedSheets(i).Visible Then wsFrom.Add w.SelectedSheets(i)
Next
strScope = wsFrom.Count & " SELECTED"
End If
strNewTab = InputBox("Merge data from " & strScope & " sheets to new sheet named:","Merge tabs","All")
If strNewTab = vbNullString Then Exit Sub
Set wsTo = wb.Worksheets.Add(wsFrom(1),Count:=1) 'Add before first selected sheet
wsTo.Name = strNewTab
wsFrom(1).Range("A1").CurrentRegion.copy
wsTo.Range("A1").PasteSpecial xlPasteFormulasAndNumberFormats
Application.CutcopyMode = False
For i = 2 To wsFrom.Count
wsFrom(i).Range("A2",wsFrom(i).Range("A1").CurrentRegion.Cells(wsFrom(i).Range("A1").CurrentRegion.Cells.Count)).copy
wsTo.Cells(wsTo.Cells.Rows.Count,1).End(xlUp).Offset(1,0).PasteSpecial xlPasteFormulasAndNumberFormats
Application.CutcopyMode = False
Next i
wsTo.Range("A1").Select
MsgBox "Merge Done"
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)