宏合并多个工作表

From 清冽之泉
Jump to navigation Jump to search

通义千问 prompt:

合并 sheet1 sheet2 ... sheetN 的内容至 sheetNEW
请用宏处理
 1Sub 合并多个工作表到SheetNEW()
 2    Dim ws As Worksheet
 3    Dim newWs As Worksheet
 4    Dim lastRow As Long
 5    Dim sourceWsName As String
 6    
 7    ' 创建新的工作表作为目标表
 8    Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
 9    newWs.Name = "SheetNEW"
10
11    ' 开始合并过程
12    For Each ws In ThisWorkbook.Worksheets
13        If Not ws.Name = "SheetNEW" Then ' 忽略已合并的目标工作表
14            lastRow = newWs.Cells(newWs.Rows.Count, "A").End(xlUp).Row + 1
15            
16            ' 复制每个工作表的内容到SheetNEW的下一个空行
17            ws.UsedRange.Copy Destination:=newWs.Range("A" & lastRow)
18        End If
19    Next ws
20    
21    ' 清理内存引用
22    Set ws = Nothing
23    Set newWs = Nothing
24End Sub