访问VBA - XLS晚期绑定,未找到变量
问题描述:
我想通过在我的AccessDB应用程序中实现晚期绑定来解决少数用户的一些XLS引用不匹配问题。我解决了一些问题,但创建了一个新问题。访问VBA - XLS晚期绑定,未找到变量
使用延迟绑定和删除XLS引用时,我在术语“LookAt:= xlWhole”(请参阅下面的代码段)中获得“Variable Not Defined”。
问题:我是否无法使用Late Binding访问这些变量?然后,我如何解决在Late Binding方案中保留所需的功能?
片段从抱怨模块:
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(默认数据类型),而不是对象。
成功。感谢您的及时回复。 –