Pab*_*blo 15 vba ms-access-2007
为了能够使用Access 2007 VBA脚本中的Excel对象和常量,我必须做出哪些声明?
Dim wb As Workbook
Run Code Online (Sandbox Code Playgroud)
要么
Set objExcelApp = New Excel.Application
Run Code Online (Sandbox Code Playgroud)
要么
.Borders(xlEdgeBottom)
Run Code Online (Sandbox Code Playgroud)
谢谢
Dav*_*ton 31
我不同意这两个答案.根本不创建引用,但使用后期绑定:
Dim objExcelApp As Object
Dim wb As Object
Sub Initialize()
Set objExcelApp = CreateObject("Excel.Application")
End Sub
Sub ProcessDataWorkbook()
Set wb = objExcelApp.Workbooks.Open("path to my workbook")
Dim ws As Object
Set ws = wb.Sheets(1)
ws.Cells(1, 1).Value = "Hello"
ws.Cells(1, 2).Value = "World"
'Close the workbook
wb.Close
Set wb = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
您将注意到,上面代码的唯一区别是变量都声明为对象,并使用CreateObject()实例化Excel实例.
无论安装什么版本的Excel,此代码都将运行,而如果安装了不同版本的Excel,或者安装在其他位置,则使用引用很容易导致代码中断.
此外,可以将错误处理添加到上面的代码中,以便在Excel实例的初始实例化失败时(例如,因为未安装Excel或未正确注册Excel),您的代码可以继续.使用引用集,如果未安装Excel,则整个Access应用程序将失败.
mar*_*arg 13
首先,您需要为Microsoft Excel对象库设置引用(菜单:工具 - >引用),然后您可以访问所有Excel对象.
添加参考后,您可以完全访问所有Excel对象.您需要在所有内容之前添加Excel,例如:
Dim xlApp as Excel.Application
Run Code Online (Sandbox Code Playgroud)
假设您在表单中添加了一个Excel工作簿对象,并将其命名为xLObject.
以下是访问此对象的工作表并更改范围的方法
Dim sheet As Excel.Worksheet
Set sheet = xlObject.Object.Sheets(1)
sheet.Range("A1") = "Hello World"
Run Code Online (Sandbox Code Playgroud)
在Access中使用Excel的另一种方法是通过访问模块启动Excel(shahkalpesh在他的回答中描述它的方式)