求助:运用excel vba编写自动打印分类汇总表的程序? 10
在分类会总表中有几个加号,讲数据进行收缩和展开,想要实现的效果是:1、先将整个汇总表打印出来;2、然后分别打印每个加号展开后的数据区域(固定标题),每次只打印加号展开的区...
在分类会总表中有几个加号,讲数据进行收缩和展开,想要实现的效果是:
1、先将整个汇总表打印出来;
2、然后分别打印每个加号展开后的数据区域(固定标题),每次只打印加号展开的区域,一共有13个加号。
能附上代码最好,谢谢各位大神! 展开
1、先将整个汇总表打印出来;
2、然后分别打印每个加号展开后的数据区域(固定标题),每次只打印加号展开的区域,一共有13个加号。
能附上代码最好,谢谢各位大神! 展开
1个回答
展开全部
一、创建E:\test_excel目录,下面放上几个要合并的Excel文件。
二、新打开一个Excel文件,先“开启开发工具”,如下图点击1,选择“Excel选项”,然后在“常用”选项卡中勾选“在功能区显示‘开发工具’选项卡”,保存后,就能看到了。
三、开启宏,如上图所示,开发工具—宏安全性—宏设置里面。
四、在Visual Basic里面选择"Sheet1",并编写相应的宏
相关代码:
'VBA for merge excel files,.just support for Excel 2007'Excel 2003 need change the codes'Author:naiveloafer'Date:2012-04-29Sub naiveloafer()Dim fs, f, f1, fc, s, x, rowss, columnssSet fs = CreateObject("Scripting.FileSystemObject")Set f = fs.GetFolder("E:\test_excel\") 'Directory of excel files will be mergeSet fc = f.Filesx = 1For Each f1 In fcIf Right(f1.Name, 4) = "xlsx" ThenWorkbooks.Open (f1.Path)rowss = Workbooks(f1.Name).Sheets(1).Range("A65536").End(xlUp).Rowcolumnss = Workbooks(f1.Name).Sheets(1).Columns.CountWorkbooks(f1.Name).Sheets(1).Range("A1:z" & CStr(rowss)).CopyWorkbooks(1).ActivateWorkbooks(1).Sheets(1).Range("A" & CStr(x) & ":z" & CStr(x + rowss)).SelectWorkbooks(1).Sheets(1).PasteApplication.CutCopyMode = Falsex = x + rowssWorkbooks(f1.Name).Close savechanges:=FalseEnd IfNextEnd Sub
五、回到刚才的Excel中,点击宏,选择刚才的宏,运行即可,如果代码没问题,那就能在当前Sheet中显示合并的结果,当然如果你有编程经验可以选择调试才定位问题,修改等。
二、新打开一个Excel文件,先“开启开发工具”,如下图点击1,选择“Excel选项”,然后在“常用”选项卡中勾选“在功能区显示‘开发工具’选项卡”,保存后,就能看到了。
三、开启宏,如上图所示,开发工具—宏安全性—宏设置里面。
四、在Visual Basic里面选择"Sheet1",并编写相应的宏
相关代码:
'VBA for merge excel files,.just support for Excel 2007'Excel 2003 need change the codes'Author:naiveloafer'Date:2012-04-29Sub naiveloafer()Dim fs, f, f1, fc, s, x, rowss, columnssSet fs = CreateObject("Scripting.FileSystemObject")Set f = fs.GetFolder("E:\test_excel\") 'Directory of excel files will be mergeSet fc = f.Filesx = 1For Each f1 In fcIf Right(f1.Name, 4) = "xlsx" ThenWorkbooks.Open (f1.Path)rowss = Workbooks(f1.Name).Sheets(1).Range("A65536").End(xlUp).Rowcolumnss = Workbooks(f1.Name).Sheets(1).Columns.CountWorkbooks(f1.Name).Sheets(1).Range("A1:z" & CStr(rowss)).CopyWorkbooks(1).ActivateWorkbooks(1).Sheets(1).Range("A" & CStr(x) & ":z" & CStr(x + rowss)).SelectWorkbooks(1).Sheets(1).PasteApplication.CutCopyMode = Falsex = x + rowssWorkbooks(f1.Name).Close savechanges:=FalseEnd IfNextEnd Sub
五、回到刚才的Excel中,点击宏,选择刚才的宏,运行即可,如果代码没问题,那就能在当前Sheet中显示合并的结果,当然如果你有编程经验可以选择调试才定位问题,修改等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询