如何在将多个excel文件合并到单个文件后获取源文件名?
我试图通过将4个excel文件合并为1个来创建一个文件。 下面是相同的代码如何在将多个excel文件合并到单个文件后获取源文件名?,excel,vba,Excel,Vba,我试图通过将4个excel文件合并为1个来创建一个文件。 下面是相同的代码 Public Sub CommandButton1_Click() Dim wb As Workbook Dim row As Long Dim i As Long Dim currow As Long Dim LastRow As Long LastRow = Sheets("Sheet1").Cells(65536, 2).End(xlUp).row Columns("O:O&qu
Public Sub CommandButton1_Click()
Dim wb As Workbook
Dim row As Long
Dim i As Long
Dim currow As Long
Dim LastRow As Long
LastRow = Sheets("Sheet1").Cells(65536, 2).End(xlUp).row
Columns("O:O").Insert
Range("O1").Value = "Source"
For i = 1 To 4 Step 1
Sheets("Sheet1").Range("O2:O" & LastRow).Value = "Dump" & i
Set wb = Workbooks.Open("C:\Users\BV\Desktop\Excel" & "\Dump" & i & ".xlsx")
With wb.Sheets("Data")
If i = 1 Then
row = 1
Else
row = 2
End If
Do Until .Range("A" & row).Value = vbNullString
currow = currow + 1
For n = 0 To 13 Step 1
Me.Range("A" & currow).Offset(columnoffset:=n).Value = .Range("A" & row).Offset(columnoffset:=n).Value
Next n
row = row + 1
Loop
End With
wb.Close True
Next i
Fees_check
Set wb = Nothing
End Sub
Dump1、Dump2、Dump3和Dump4是源文件名。
我想添加另一列,在合并后提供源文件名,如Dump1、Dump2等。
现在我得到的所有行的值都是Dump4。
感谢您的帮助
谢谢您的问题是这一行:
Sheets("Sheet1").Range("O2:O" & LastRow).Value = "Dump" & i
每次通过循环时,只需将从O2到最后一行的值替换为dump&i,在最后一次使用dump4填充整个列
因此,去掉该行,使用CurrRow变量填充O列,可能只需在数据中实际移动的位中插入一行,如下所示:
For n = 0 To 13 Step 1
Me.Range("A" & currow).Offset(columnoffset:=n).Value = .Range("A" & row).Offset(columnoffset:=n).Value
Me.Range("O" & currow).Value2 = "Dump" & i ' INSERT THIS LINE
Next n
这是一个快速修复方法,通常我会一次性填充一个范围,但我认为您只是处理少量数据,应该可以。您不断地在这里覆盖Sheet1.RangeO2:O&LastRow.Value=Dump&I。顺便说一句,行不是一个好的变量名imv。谢谢法语。谢谢你的帮助。