私のブックには、別のExcelワークブックからのいくつかのデータ接続があります。自分のソースをダウンロードファイルに保存します。私のコードは、データと埋め込み式をリフレッシュします。しかし、私はこのコードを他のユーザーが使用できるようにしたい。データ接続でブック内の異なるユーザーIDでマクロを実行する方法
このマクロを使用し、ソースファイルを独自のダウンロードファイルに保存し、入力(UserID)を変更する予定のユーザーは、コードが関連する場所に到達することができます。しかし、コードは機能していません。ここに私のコードは、(私のユーザーIDで動作します)です:私はusing Z4321
上記のコードを実行した場合
を想定
My UserID: A1234 and Another UserID: Z4321
できるようにします:
UserID = InputBox("Your UserID:")
For i = 1 To 4
With ActiveWorkbook.Connections(i).OLEDBConnection
.SourceDataFile = "C:\Users\" & UserID & "\Downloads\Source.xlsx"
.SourceConnectionFile = "C:\Users\" & UserID & "\Downloads\Source.xlsx"
.BackgroundQuery = False
.Refresh
End With
Application.CalculateUntilAsyncQueriesDone
Range("Table" & i & "[[ColumnName1]:[ColumnName2]]").FillDown
Range("Table" & i).Calculate
Next i
ここで私は私がやっていることは何の非常に基本を作成しましたコードは依然としてMYダウンロードファイルにアクセスして、それがSHOULD NOTであるデータをインポートします。私はそれがエラーを与えるべきだと思います。どのように私のコンピュータに存在しないファイルに到達することができますか?
その後、私は、私はそれより上のコードを使用している場合、このパスに変更することを実現:
Excel> Data> Connections> Properties> Definition> Connection File
it writes C:\Users\Z4321\Downloads\Source.xlsx
をしかし、このパスはまだ私のユーザーIDに残る:
Excel>Data>New Query> Data Source Settings
it still writes C:\Users\A1234\Downloads\Source.xlsx
どのように経路を変更できますかVBAコードを使用してlink2?
これは私の職場では、すべての従業員がログインするために使用するID番号(A74892、E38523など)を持っている状況です。私は問題は可変セットではなく、forループそのものであると考えています。プロパティ.SourceDataFileと.SourceConnectionFileが機能しません。または、おそらく私は間違ったオブジェクトを使用しています。私はlink2の経路を変更することができるはずですが、私はそれを行う方法がわかりません。 – Raxian
私が別の言い方をすると、上のコードは接続名(link1)を変更しますが、興味深いことに接続先(link2)は変更しません – Raxian