2017-09-13 69 views
1

我想通過在我的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 

讓我開始有什麼建議嗎?

謝謝。

回答

3

是的,通過刪除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(默認數據類型),而不是對象。

+0

成功。感謝您的及時回覆。 –