存储在Access中的Excel宏

时间:2013-11-20 21:08:11

标签: excel vba ms-access

所以我每天都会将数据导入Access以用于报告。数据来自不同个人创建的几个电子表格。因为那些人​​喜欢不正确地格式化我创建了一个宏来重新格式化他们的文档,以便可以将其干净地导入Access以供我使用。工作得很好,但是打开每个Excel工作表来运行这个宏是很乏味的。

我要做的是将Excel宏放在Access中,然后在一次导入之前运行格式化代码。我接近这个时有点迷失。我知道如何运行已放置在Excel工作表中的宏,但有没有办法运行存储在Excel中的工作在Excel中的宏。我还想过将宏注入excel文档然后运行它。

总而言之,我希望做的是从Access,存储一个宏,可以用来改变Excel文件。

这一切都可能吗?如果是这样如何?还有另一种方法吗?

1 个答案:

答案 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