【发布时间】:2019-06-26 03:35:38
【问题描述】:
我有几个不同结构的 SSRS 报告(.xls 文件):
- 报表 1 内有 3 张 Excel 表格。
- 报表 2 里面有 2 张 Excel 表格。
- 报表 3 里面有 4 张 Excel 表格。
我希望将所有这 9 个 excel 工作表合并到具有不同工作表的单个 Excel 文件中,也就是说,我的最终 excel 文件应该包含所有这 9 个工作表,我可以使用下面的宏代码来实现。
Path = "C:\Users\FILES\" ' This will fetch all the files form the mentioned location
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.DisplayAlerts = False ' Delete an extra sheet
Worksheets("SHEET1").Delete
Application.DisplayAlerts = True
Application.DisplayAlerts = False ' This will create a new excel file and stores all the data in to it.
ThisWorkbook.CheckCompatibility = False
ThisWorkbook.SaveAs Filename:="C:\Users\merge.xls", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
Application.DisplayAlerts = False ' Save and exit
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
我面临的唯一问题是合并文件时我的 VBA 代码不包括应用于我的 SSRS 报告中的几个单元格的颜色。
如何在不丢失已应用的颜色格式的情况下复制 excel 文件?
【问题讨论】:
-
这些单元格是如何着色的?条件格式还是直接更改单元格?新文件是 openXML 类型吗? (.xlsm, .xlsx)
-
Filename:="C:\Users\merge.xls", FileFormat:=xlOpenXMLWorkbook,不匹配,应该是 .xlsx 文件 -
我什至尝试从.xls 更改为.xlsx,还是一样。
-
源文件由SSRS生成,着色在.RDL文件中完成