これは、MySQLからデータをインポートするexcel上でマクロを作成しています(querytables.addとOBCDを使用しています)。マクロを実行するたびに、時間と空間のセル/シートに接続があるかどうかを知る関数があるので、データを再度インポートして、新しい接続またはコードを作成して、接続が最後に更新された時刻を知る必要はありません。インポートされたデータをセルで検索してインポートを停止するVBA
私は何かを見つけましたが、それは何もないようですので、おそらくそれを行う別の方法は便利です、ありがとう!
コード:
Worksheets("Hoja1").Activate
Dim sqlstring As String
Const connstring As String = "ODBC;DSN=blabla;UID=blabla;PWD=blabla"
if "***Range("A1") has a connection***" then
ActiveWorkbook.Connections("Conexión").Refresh 'actualize the connection previously made
Else 'import the table from sql server
sqlstring = vbNullString
sqlstring = "SELECT * FROM ExTable WHERE year > '2012'"
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring)
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
End With
これは私が探していたようですが、 "cn.Ranges(1)"を理解していますが、接続 "テーブル"のセル(1,1)の値をとっていますか?接続がテーブルにインポートされたテーブルであると仮定します。 – AEPImiranda
@AEPImiranda 'cn.Ranges (1) 'は接続によって現在カバーされているセルの領域を生成します。 'cn.Ranges(1).Address'に' debug.print'を使って確認できます。それは、例えば、テーブル、またはピボットテーブルの範囲の領域を表示します。 –