こことグーグルで検索しましたが、まだ問題を解決できません。私の.vbs
ファイルでは、Excel の名前付き範囲を同等に使用しようとしています。以下はExcelのVBAで機能しますが、ファイルで機能させることはできません*.vbs
。
ThisWorkbook.Sheets(1).Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row).Name = "DATA"
strSql = "SELECT * FROM DATA"
そのため、名前付き範囲を参照するさまざまなバリエーションを試してみましたがDATA
、うまくいきませんでした。
これは私が今持っているものです:
Set rng = ws.Range("A1:B2")
rng = "DATA"
strSql = "SELECT * FROM DATA"
関連するいくつかの異なるバリエーション: パラメータ ByVal を取得する、DATA (文字列型) の代わりに rng を使用する、SELECT * FROM " & rng, etc..
実行時のエラー メッセージ:
Microsoft (R) Windows Script Host バージョン 5.8 Copyright (C) Microsoft Corporation. 全著作権所有。
C:\Users\admin\Desktop\UpdateSourceTbl.vbs(119, 5) Microsoft JET データベース エンジン: Microsoft Jet データベース エンジンは、オブジェクト 'DATA' を見つけることができませんでした。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。
どんな助けでも大歓迎です!
一時的な解決策: 行番号を含む 2 つのパラメーターを使用しましたが、最適な解決策ではない可能性がありますが、機能します! そして、私はそれが公平であるために何も悪いとは思わない
Call createAndInsertRecordSet(wb.FullName, ws.Name, i+1, j-1)
Sub CreateAndInsertRecordSet(ByVal fullname, ByVal wsName, ByVal stRow, byVal enRow )
strSql = "SELECT * FROM [" & wsName & "$B" & stRow & ":AX" & enRow & "]"