我有一个包含多张纸的excel文件 . 每张工作表都具有相同的格式,例如:
表1:名称“01”
╔══════╦═══════╗
║ Name ║ Value ║
╠══════╬═══════╣
║ a ║ 1 ║
║ b ║ 2 ║
╚══════╩═══════╝
表2:名称“02”
╔══════╦═══════╗
║ Name ║ Value ║
╠══════╬═══════╣
║ c ║ 3 ║
║ d ║ 4 ║
╚══════╩═══════╝
我想将所有这些工作表组合成一个新的工作表,如:
表单组合:名称“组合”
╔══════╦═══════╦════╗
║ Name ║ Value ║ ID ║
╠══════╬═══════╬════╣
║ a ║ 1 ║ 01 ║
║ b ║ 2 ║ 01 ║
║ c ║ 3 ║ 02 ║
║ d ║ 4 ║ 02 ║
╚══════╩═══════╩════╝
我找到了一个VBA代码来组合所有工作表,但我不知道如何在组合之前为每个工作表添加列ID . VBA代码是:
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
非常感谢,如果有人可以帮助我 .
2 回答
假设您的问题中只显示了两列 . 这应该工作 .
我在Excel VBA的初级水平,因此有兴趣尝试在论坛中建议的各种代码片段 . 我只想发表评论,但没有必要的评论点 . 我把我的观点作为答案 .
在尝试代码@DiegoAndresJAY时,C列值与A列和B列中的值不对齐 . 次要调整以下行会给出正确的对齐方式 . 也许是一种疏忽 .
谢谢