使用VBA中的ADODB查询带空格的图纸名称

我试图用adodb查询excel文件。 但有些文件具有非标准的表格/列名称。

strQry = "select * from [ sheet1$A1:A50]" 

我得到一个错误,说“无效的名称包围”。 如何在名称中有多余空格的工作表上运行查询? 这些是来自客户端的原始文件,所以我不想更改名称或任何东西。

另外,我还有关于该列的另一个问题。

 strQry2 = "select [column\rA] from [sheet1$E1:E122]" 

“\ r”是换行符。 我得到一个错误“给一个或多个必需的参数没有给定值”。

有关如何处理这些问题的build议?

更新:

Sheet 1工作正常,但我有工作表被命名为Sheet1Sheet1 之前的额外空间)

某些列标题在列名称中包含换行/回车,如“column”&vbcrlf&“name”。 有没有办法来查询这些?

就空间而言,如果Sheet 1在Sheet和1之间有空间使用

"select * from [Sheet 1$A1:A50]"

如果在sheet 1 aka前面有空间。 Chr(32) & Sheet 1那么使用[] syntax就不可能从该表中select任何东西

但是 ,如果您不想更改电子表格的原始名称,则可以为要从中提取数据的范围创build临时 命名范围

例如:

 ' add a temporary name ThisWorkbook.Names.Add name:="tmp", RefersTo:=Sheets(" Sheet 1").Range("A1:C4") ' create your sql including the named range sql = "SELECT * FROM tmp" ' open recordset rs.Open sql, cn, adOpenUnspecified, adLockUnspecified ' remove the temporary name ThisWorkbook.Names.Item("tmp").Delete ' copy rs to spreadsheet ActiveSheet.Range("F2").CopyFromRecordset rs 

我不明白的第二个问题可以详细说明,我会更新答案?