Sub TransferData()
Dim srcWS As Worksheet, destWB As Workbook
Dim lastRow As Long, i As Long, rng As Range
Dim keyName As String, fileName As String
Dim destWS As Worksheet
Set srcWS = ThisWorkbook.Sheets("Sheet1")' 源工作表
Application.ScreenUpdating = False
Application.DisplayAlerts = False
lastRow = srcWS.Cells(srcWS.Rows.Count, "A").End(xlUp).Row
' 创建字典用于分组
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")' 分组数据
For i = 8 To lastRow ' 假设数据从第8行开始
keyName = srcWS.Cells(i, 1).Value
If keyName <>"" Then
If Not dict.Exists(keyName) Then
dict.Add keyName, New Collection
End If
dict(keyName).Add i
End If
Next i
' 处理每个分组
Dim key As Variant, cell As Variant
For Each key In dict.Keys
fileName = ThisWorkbook.Path & "\" & key & "_2024年盘点表电子表.xls"
If Dir(fileName) <> "" Then
Set destWB = Workbooks.Open(fileName)
Set destWS = destWB.Sheets(1)
' 查找目标起始行
Dim startRow As Long
startRow =5' C5对应行号为5
For Each cell In dict(key)
' 复制C-G列数据
srcWS.Range("C"& cell &":G"& cell).Copy
destWS.Cells(startRow, 3).PasteSpecial xlPasteValues
startRow = startRow + 1
Next cell
destWB.Close SaveChanges:=True
Else
MsgBox "未找到工作簿:"& fileName, vbExclamation
End If
Next key
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "数据转移完成!"
End Sub