excel - Access VBA - XLS 后期绑定(bind),未找到变量

标签 excel ms-access vba

我试图通过在我的 AccessDB 应用程序中实现后期绑定(bind)来解决一些用户的一些 XLS 引用不匹配问题。我已经解决了一些问题,但创建了一个新问题。

删除后期绑定(bind)和 XLS 引用后,我在“LookAt:=xlWhole”一词处得到“ undefined variable ”(参见下面的片段)。

问题:我是否无法通过后期绑定(bind) Access 这些变量?然后,如何在后期绑定(bind)场景中保留所需的功能?

来自提示模块的片段:

Dim appXLS As Object
Dim wbk As Object
Dim wks1, wks2, wks3, wks4, wks5 As Object
'...other unrelated declarations

'...unrelated code

'Create the Excel Application, Workbook and Worksheet

Set appXLS = CreateObject("Excel.Application")
Set wbk = appXLS.Workbooks.Add(1)

appXLS.Visible = True
wbk.Activate

'...more unrelated code

'...first offending line:
wks1.Range("E1:E" & intRows).Replace What:="0", Replacement:="", 
LookAt:=xlWhole, _
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

有什么建议可以让我开始吗?

谢谢你。

最佳答案

是的,通过删除对 Excel 对象库的引用,您将丢失这些常量。

解决方案:将它们的定义从对象浏览器复制到标准模块中:

Const xlWhole = 1
Const xlByColumns = 2

或(可读性较差)在调用 Excel 方法时直接使用数字。
LookAt:=1, _       ' xlWhole
SearchOrder:=2, _  ' xlByColumns
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False

对你来说可能是可以接受的。

顺便说一句,无关:
Dim wks1, wks2, wks3, wks4, wks5 As Object

将 wks1 ... wks4 声明为 Variant(默认数据类型),而不是 Object。

关于excel - Access VBA - XLS 后期绑定(bind),未找到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46204229/

相关文章:

python - 如何使用 win32com 和操作系统迭代修改 Excel 文件类型?

电子表格 |工作表 : Display numbers between range in one cell

.net - 更改数据后自动对 Access 表中的记录重新编号

excel - 如何将工作表的第一行连接成以逗号分隔的列表?

excel - 获取应用程序定义或对象定义的错误

excel - Excel 中多少列(安全)算太多?

java - 在java中从ms access数据库中检索图像

ms-access - 为什么我得到 "data type mismatch in criteria expression?"

java - VBA 中的备忘录实现

vba - 将参数从 VBS 传递到 VBA