使用Jet / ACE
SQL引擎,您可以在带有方括号或反引号的标识符中转义特殊字符。因此,句点不应成为问题,然后您可以
A1在SQL查询中使用完整的工作表名称和范围标记(为了清楚起见)代替命名范围。
但是,您的特定SQL错误是由于
IN在
INNERJOIN子句中使用。避免
IN最适合用于一个表,并使用句点限定符语法,该语法将工作簿路径作为参数传递给内联调用中的参数,甚至不需要 Provider
也可以:
FROM [Excel 12.0 Xml;HDR=Yes;Database=C:PathToWorkbook].[Worksheet$] AS w
总之,请考虑以下调整,而没有难以调试的命名范围。下面显示了如何使用方括号或反引号处理期间,以及如何使用
A1符号范围引用内部和外部工作表。
strSQL = "SELECt s1.[reference]" & _ " FROM [S.h.e.e.t1$A4:Z100] s1" & _ " INNER JOIN [Excel 12.0 Xml;HDR=Yes;Database=C:PathToWorkbook].`S.h.e.e.t.2$A9:Z100` s2 ON s1.[reference] = s2.[reference]" & _ " WHERe s1.reference LIKE '1%'"rs.Open strSQL, con



