2017-09-13 9 views
1

私は、AccessDBアプリケーションでLate Bindingを実装することで、いくつかのユーザーのXLS参照の不一致を解決しようとしています。私はいくつかの問題を解決しましたが、新しい問題を作成しました。アクセスVBA - XLS Late Binding、変数が見つかりません

レイトバインディングとXLSリファレンスが削除されたので、「LookAt:= xlWhole」という用語に「変数が定義されていません」と表示されます(下記のスニペットを参照)。

質問: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を宣言バリアント(デフォルトのデータ型)としてではなく、オブジェクトとして。

+0

成功。迅速な対応をありがとうございます。 –

関連する問題