【问题标题】:Excel 2007 VBA to merge multiple sheets to 1 with a column offsetExcel 2007 VBA 将多个工作表合并为 1,并带有列偏移
【发布时间】:2013-04-03 06:01:04
【问题描述】:

我找到了很多关于如何在合并工作表时排除列标题的答案,但是在复制初始工作表后我找不到关于如何排除列 A 的任何答案。请帮忙。警告:我对 VBA 很陌生,我可能做了一些愚蠢的事情,但我已经尝试了 2 天来完成这项工作。在结束 if 语句之前,我不断收到最后两行代码的错误。我第一次发布问题,如果有更好的方法,请告知。

简单描述一下我想要什么:

  • 注意:所有工作表始终有 365 行,工作表数和列数各不相同。
  • 获取第一张表并将数据复制到新的“主”表中,包括所有列和所有行
  • 所有其他工作表将具有完全相同的 A 列,但需要通过未知数量的列将 B 添加到主工作表中的下一个空列。

示例
工作表 1 有 365 行,只有 A 列和 B 列 工作表 2 有 365 行,A 到 D 列有数据 新的主工作表有 365 行,包含工作表 1 中的所有内容,工作表 2 中的 B 到 H 列将作为 C 到 E 列添加到主工作表

这是我的代码:

Dim ws As Worksheet
Dim wsMain As Worksheet
Dim DataRng As Range
Dim Col As Long
Dim Cnt As Integer

Application.DisplayAlerts = False
On Error Resume Next
Sheets("Report").Delete
Sheets("Wex").Delete
Sheets("C Locs").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets.Add().Name = "Master"

Application.ScreenUpdating = False


Cnt = 1

Set wsMain = Worksheets("Master")
For Each ws In ThisWorkbook.Worksheets

If ws.Name <> wsMain.Name Then
If Cnt = 1 Then
Set DataRng = ws.Cells(1, 1).CurrentRegion
DataRng.Copy wsMain.Cells(1, Cnt)
Else: Col = wsMain.Cells(1, Columns.Count).End(xlToLeft).Column + 1

DataRng.Offset(0, 1).Resize(DataRng.Rows.Count, DataRng.Columns.Count - 1).Copy ActiveSheet.Cells(1, Col)

End If
End If
Cnt = Cnt + 1
Next ws



Application.ScreenUpdating = True

End Sub

【问题讨论】:

    标签: vba excel-2007


    【解决方案1】:
    For Each ws In ThisWorkbook.Worksheets
    
        If ws.Name <> wsMain.Name Then
            If Cnt = 1 Then
                Set DataRng = ws.Cells(1, 1).CurrentRegion
                DataRng.Copy wsMain.Cells(1, 1)
            Else
                With ws.Cells(1, 1).CurrentRegion
                    Set DataRng = .Resize(.Rows.Count, .Columns.Count - 1).Offset(0, 1)
                    DataRng.Copy wsMain.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1)
                End With
            End If
    
            Cnt = Cnt + 1
        End If
    
    Next ws
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多