用于外部数据源的简化VBA代码



因此,在我所有使用SQL查询数据库的VBA宏中,我只是使用了在Excel中录制宏时自动输入的内容。有没有办法简化它?它先把它插入到一个表中,但实际上我只想把原始数据放在电子表格中。。。它不需要看起来好看。

Sheets("Sheet1").Select
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=AS400;" _
    , Destination:=Range("$A$1")).QueryTable
    .CommandText = strSQL
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Table_LOCAL_ITEM"
    .Refresh BackgroundQuery:=False
End With
ActiveSheet.ListObjects("Table_LOCAL_ITEM").Unlist
Cells.Select
Selection.ClearFormats

我记不清确切的代码,但可以在重新开始工作时查找。但是,根据您在SQL中使用哪种方法获取数据(例如ADO或DAO),如果我只是想要原始数据,我会这样做。

如果您将一个变量定义为记录集(例如Dim rst作为记录集),VBA有一个函数可以返回记录集中的所有数据,类似于:

Sheets("Sheet 1").Range("A1").CopyFromRecordset rst

它将输出记录集中的所有数据。

相关内容

最新更新