我需要将一百个 Excel 文件合并为一个 Excel 文件。每个 Excel 文件都需要合并到工作簿中自己的工作表中,并且目标工作表需要具有原始文件的名称(减去扩展名)。这可能吗?
好吧,您似乎没有为此付出任何努力,但是由于我已经编写了这些宏,因此我会将它们提供给正在搜索的其他人。这些是用 excel 2007 编写的,是更大过程的一部分。
请务必注意,如果您的任何文件名超过 31 个字符,这将失败,excel 对工作表名称有字符限制
Sub CombineWSs()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "C:\Documents and Settings\path\to"
Set wbDst = ThisWorkbook
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets(1)
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
Sub RenameWS()
Application.ScreenUpdating = False
Dim strName As String
Dim intLength As Integer
For Each Sheet In ActiveWorkbook.Worksheets
strName = Sheet.Name
intLength = Len(strName)
strName = Left(strName, intLength - 5)
Sheet.Name = strName
Next
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36255 次 |
| 最近记录: |