我在这里和谷歌上搜索过,但我仍然无法解决我的问题。我正在尝试在我的.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,使用 rng 而不是 DATA(字符串类型),SELECT * FROM " & rng, etc..
运行时的错误消息:
Microsoft (R) Windows Script Host 版本 5.8 版权所有 (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 & "]"