如何使用Excel VBA和ADO将查询结果放入数据表中?

时间:2012-02-09 02:40:37

标签: excel-vba ado vba excel

我想通过ODBC使用ADO从数据库表中提取记录并将它们放在Excel工作表中。我可以做这个。最终,我希望数据包含在Excel表中。我知道如何通过选择适当的单元格并使用“插入”菜单创建表来手动执行此操作。如何在我的VBA代码中执行此操作,以将返回的查询结果放入Excel表中的目标工作表中?我尝试使用宏录制器,但生成的代码没有帮助。

2 个答案:

答案 0 :(得分:2)

这样的东西?

导入数据后添加此代码。我假设以下内容。请相应修改。

  • 数据导入Sheet1的单元格A1

  • 第1行包含列标题

    Sub Sample()
    
        Dim LastRow As Long, LastCol As Long
        Dim ws As Worksheet
        Dim rng As Range
    
        Set ws = Sheets("Sheet1")
    
        LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
        LastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column
    
        Set rng = Range("$A$1:$" & Split(Cells(, LastCol).Address, "$")(1) & "$" & LastRow)
    
        With ws
            .ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "Table1"
            .ListObjects("Table1").TableStyle = "TableStyleLight2"
        End With
    
    End Sub
    

答案 1 :(得分:1)

如果单击“数据”选项卡上的“从其他来源”按钮,则应该会看到列出的ODBC。然后,您可以指定要连接的表。然后,您将拥有一个包含数据的可刷新表格,换句话说,它将您正在执行的操作与您想要执行的操作合并为一个步骤。根据你在评论中所说的话,我认为这是要走的路,但是如果我遗失了什么,请告诉我。