所以我每天都会将数据导入Access以用于报告。数据来自不同个人创建的几个电子表格。因为那些人喜欢不正确地格式化我创建了一个宏来重新格式化他们的文档,以便可以将其干净地导入Access以供我使用。工作得很好,但是打开每个Excel工作表来运行这个宏是很乏味的。
我要做的是将Excel宏放在Access中,然后在一次导入之前运行格式化代码。我接近这个时有点迷失。我知道如何运行已放置在Excel工作表中的宏,但有没有办法运行存储在Excel中的工作在Excel中的宏。我还想过将宏注入excel文档然后运行它。
总而言之,我希望做的是从Access,存储一个宏,可以用来改变Excel文件。
这一切都可能吗?如果是这样如何?还有另一种方法吗?
答案 0 :(得分:2)
您要求做的是从Access自动化Excel。是的,你可以这样做。在Access中,添加一个模块,添加对Microsoft Excel对象模型的引用(工具:参考),并使用此框架代码来帮助您入门:
Sub PrepExcelFileForImport()
Dim xl As Excel.Application
Dim wbk As Excel.Workbook
Dim wst As Excel.Worksheet
Set xl = CreateObject("Excel.Application")
With xl
.Visible = True
Set wbk = .Workbooks.Open("c:\temp\temp.xlsx")
Set wst = wbk.Worksheets("data")
With wst
' add your formatting code here, be sure to use qualified references, e.g.
.Rows(1).Font.Bold = True
End With
End With
wbk.Close SaveChanges:=True
xl.Quit
End Sub