|
楼主 |
发表于 2017-8-14 11:27
|
显示全部楼层
非常感谢您的帮助,报错的原因找到了,因为我修改代码后为了与原代码区别顺手把代码名称也改了,忘记了在重新指定宏,所以点击按钮不运行。
再有我把您14楼代码替换后完美实现了粘贴--数值的效果。我想在此基础上把您的表头处理:aa = Application.InputBox(prompt:="请输入分表表头行数(默认:3)", Title:="分表表头行数", Default:="3", Type:=1)添加入代码中,我试了几次都没成功,麻烦您再帮助修改下。代码:
Sub 合并工作簿中左起第一个工作表()
Dim myPath$, myFile$, AK As Workbook, aRow%, tRow%
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
myPath = ThisWorkbook.Path & "\" '把文件路径定义给变量 当前文件夹( 原代码【& "\统计表\" 】)
myFile = Dir(myPath & "*.xls") '依次找寻指定路径中的*.xls文件 xls也可换成其他格式*****
Do While myFile <> "" '当指定路径中有文件时进行循环
If myFile <> ThisWorkbook.Name Then
Set AK = Workbooks.Open(myPath & myFile) '打开符合要求的文件
aRow = AK.Sheets(1).Range("a65536").End(xlUp).Row
tRow = ThisWorkbook.Sheets(1).Range("a65536").End(xlUp).Row + 1
AK.Sheets(1).Range("A4:BL" & aRow).Copy
ThisWorkbook.Sheets(1).Range("a" & tRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Workbooks(myFile).Close False '关闭源工作簿,并不作修改
End If
myFile = Dir '找寻下一个*.xls文件
Loop
Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
MsgBox "汇总完成,请查看!", 64, "提示"
End Sub
您的指定第三行列数的方案非常棒,可我实际应用中很多表格在标准表格的后边添加了多列的附加项目,所以我把汇总表格的列宽尽可能设置大一点,确保所有附加项目也能汇总上。故此舍去了您的指定“第三行列数“的方案,保留表头处理方案。谢谢 |
|