
请大神帮忙把这个合并目录下所有工作薄的VBA代码给个注释!谢谢
Sub合并当前目录下所有工作簿的全部工作表()Dimmypath,myname,wbn,boxAsStringDimwbAsWorkbookDimg,numAsLongA...
Sub 合并当前目录下所有工作簿的全部工作表()
Dim mypath, myname, wbn, box As String
Dim wb As Workbook
Dim g, num As Long
Application.ScreenUpdating = False
mypath = ActiveWorkbook.Path
myname = Dir(mypath & "\" & "*.xls")
num = 0
Do While myname <> ""
If myname <> ActiveWorkbook.Name Then
Set wb = Workbooks.Open(mypath & "\" & myname)
num = num 1
With Workbooks(1).ActiveSheet
.Cells(.Range("a1048576").End(xlUp).Row 2, 1) = myname
For g = 1 To Sheets.Count
wb.Sheets(g).UsedRange.Copy .Cells(.Range("a1048576").End(xlUp).Row 1, 1)
Next
wbn = wbn & Chr(13) & wb.Name
wb.Close False
End With
End If
myname = Dir
Loop
Range("a1").Select
Application.ScreenUpdating = True
MsgBox "主人,小千共合并了" & num & "个工作薄下的全部工作表:" & Chr(13) & wbn, vbInformation, "提示"
End Sub 展开
Dim mypath, myname, wbn, box As String
Dim wb As Workbook
Dim g, num As Long
Application.ScreenUpdating = False
mypath = ActiveWorkbook.Path
myname = Dir(mypath & "\" & "*.xls")
num = 0
Do While myname <> ""
If myname <> ActiveWorkbook.Name Then
Set wb = Workbooks.Open(mypath & "\" & myname)
num = num 1
With Workbooks(1).ActiveSheet
.Cells(.Range("a1048576").End(xlUp).Row 2, 1) = myname
For g = 1 To Sheets.Count
wb.Sheets(g).UsedRange.Copy .Cells(.Range("a1048576").End(xlUp).Row 1, 1)
Next
wbn = wbn & Chr(13) & wb.Name
wb.Close False
End With
End If
myname = Dir
Loop
Range("a1").Select
Application.ScreenUpdating = True
MsgBox "主人,小千共合并了" & num & "个工作薄下的全部工作表:" & Chr(13) & wbn, vbInformation, "提示"
End Sub 展开
1个回答
展开全部
.Cells(.Range("a1048576").End(xlUp).Row 2, 1) = myname
这个是病句吧。
num = num 1
wb.Sheets(g).UsedRange.Copy .Cells(.Range("a1048576").End(xlUp).Row 1, 1)
都是病句。
这个是病句吧。
num = num 1
wb.Sheets(g).UsedRange.Copy .Cells(.Range("a1048576").End(xlUp).Row 1, 1)
都是病句。
更多追问追答
追问
不是病句啊!确实合并成功了
追答
.Cells(.Range("a1048576").End(xlUp).Row+2, 1) = myname
这样才不是病句
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询