如何在VBA SQL中引用Sheet.Column

时间:2018-11-01 19:03:39

标签: excel database vba

我创建了这个基本的VBA脚本,目的是了解如何引用已创建工作表中的列。在这种情况下,我希望能够在我的sql查询中引用工作表1的数字列。我已经附上了为测试这一点而编写的完整代码。当然,ws1.number不能作为字段工作。有没有正确的方法从ws1中选择该列?

code

sql = "Select ws1.number " & _
      "from " & ws1 & " as ws1"  

2 个答案:

答案 0 :(得分:0)

在SQL文本中,您可以引用工作表名称,后跟方括号$,就好像它是一个表一样。如果您将“数字”一词写到一个单元格中,则以下内容将选择该标题下的每个连续行:

sql = "Select Number" & _
      "FROM [" & ws1.name & "$] as ws1" 

请注意,如果您有多个带有“数字”文本的单元格,它将采用该单元格的第一个实例,即从左/上到右/下搜索。

答案 1 :(得分:0)

要通过数字引用列,您将必须在连接字符串HDR=NO中将列标题设置为false。然后,F可以用字段和数字引用这些列,并用方括号括起来。

"SELECT ws1.[F1], ws1.[F2] FROM [" & Worksheets(1).Name & "$] AS ws1"

“ AS ws1”创建表别名;简化代码。