0
我的工作簿包含來自另一個Excel工作簿的多個數據連接。我將我的源保存在我的下載文件中。我的代碼刷新數據和填充公式。但是我希望這個代碼能夠被其他用戶使用。如何通過具有數據連接的工作簿中的不同用戶標識運行宏
這個想法是人們將要使用這個宏,將他們的源文件保存在他們自己的下載文件中,並且改變輸入(UserID),代碼可以到達相關位置。但代碼不起作用。這裏是我的代碼(我的用戶名作品):
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 UserID: A1234 and Another UserID: Z4321
如果我運行上面using Z4321
代碼代碼仍會訪問我的下載文件並導入它不應該包含的數據。我認爲它應該給出一個錯誤。它如何到達我的電腦中不存在的文件?
然後我意識到,如果我用上面的代碼它改變這條道路:
Excel> Data> Connections> Properties> Definition> Connection File
it writes C:\Users\Z4321\Downloads\Source.xlsx
但是這條道路仍然與我的用戶名:
Excel>Data>New Query> Data Source Settings
it still writes C:\Users\A1234\Downloads\Source.xlsx
如何改變途徑link2使用VBA代碼?
事實上,這是我的工作場所的情況,每個員工都有一個我想用的ID號碼(A74892,E38523等),用於登錄。我認爲問題不是用變量集,而是用for循環本身。屬性.SourceDataFile和.SourceConnectionFile不工作,因爲我想或最可能我使用錯誤的對象。我應該能夠改變link2的路徑,但我不知道該怎麼做。 – Raxian
如果我以其他方式聲明,上面的代碼會改變連接名稱(link1),但有趣的是它不會改變它連接的位置(link2) – Raxian