本帖最后由 zjdh 于 2013-9-12 10:05 编辑
FVOOL 发表于 2013-9-12 08:32
谢谢了,用方法1已经能解决了,但已有的文件太多,改名太麻烦了,我也想到循环
提供文件名的方法,可实在 ...
改一个头一个尾即可
Sub 合并工作簿()
Application.DisplayAlerts = False '关闭提示窗口
shes = Application.SheetsInNewWorkbook '工作簿中包含工作表数
Application.SheetsInNewWorkbook = 1 '生成的新工作簿中只有一个工作表
Set newbok = Workbooks.Add '生成新工作簿
Set newshe = newbok.Worksheets(1) '新工作表
s=1
For I = 1 To 300 '设定至大于最大文件编号
If Dir("d:\123\" & I & ".xls") <> "" Then '需要合并的所有工作表都要事先保存在D盘123文件夹下
Set wb = Application.Workbooks.Open("d:\123\" & I & ".xls")
Rows("1:2").Select
Selection.Delete Shift:=xlUp '删除行
Columns("A:C").Select
Selection.Delete Shift:=xlToLeft '删除列
Columns("FM:FM").Select
Selection.Delete Shift:=xlToLeft '删除列
wb.Worksheets(1).UsedRange.Copy '复制数据
newbok.Activate
Cells(s, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True '转置为列
Selection.Copy
Cells(s, 1).Select
ActiveSheet.Paste '执行粘贴
s = newshe.UsedRange.Rows.Count+1
Cells(s, 3) = wb.Name '写入数据所属的工作簿名字
wb.Close '关闭工作簿
End If
Next
Application.SheetsInNewWorkbook = shes
Application.DisplayAlerts = True
Range("a1").Select
End Sub