我在一個非常大的國際集團作業。為了獲取該組共有的資料,我需要使用 Citrix Receiver 連接到遠程虛擬機 (VM)。
此 VM 的編程方式是,當非管理員的某人連接到它時,它會啟動一個臨時 Excel。請注意,非管理員只能訪問 VM 上的此 Excel 實體。
在這個 Excel 實體中,有一個 AddIn,用于查詢我每天需要獲取的組提供的資料。我手動執行此操作,我想將其自動化。
我已經設法撰寫了一個在本地運行的代碼。此代碼通過公司網站連接到 VM,因此我面前打開了臨時 Excel。這是代碼以及如何在我面前打開臨時 Excel:
Dim ie As Object
Dim doc As New HTMLDocument
Dim usn_box As HTMLInputElement
Dim pwd_box As HTMLInputElement
Dim btn As HTMLButtonElement
Dim img As HTMLImg
Set ie = New InternetExplorerMedium ' needs this and not usual internetExplorer
ie.Visible = True
ie.Silent = True
ie.Navigate "https://the.path"
While ie.Busy Or ie.ReadyState <> 4
DoEvents
Wend
Application.Wait Now TimeSerial(0, 0, 5)
Set doc = ie.Document
'if error on usn_box go directly to image and click it cause you are logged in
Set usn_box = doc.querySelector("#username")
If Not usn_box Is Nothing Then
usn_box.Value = usn
Set pwd_box = doc.querySelector("#password")
pwd_box.Value = pwd
Set btn = doc.querySelector("#loginBtn")
btn.Click
Application.Wait Now TimeSerial(0, 0, 5)
End If
Set img = doc.querySelector("#home-screen > div.home-view-content > section.scrollable.storeViewSection > div.store-apps-container > ul > li:nth-child(1) > a.storeapp-details-link > img")
img.Click
Application.Wait Now TimeSerial(0, 0, 20)

現在我需要的是能夠使用我的 VBA 代碼來控制這個 Excel,以便能夠使用這個資料通用插件。我怎樣才能做到這一點 ?
我嘗試檢查如何從另一個控制 excel 實體,但由于有問題的實體位于遠程 VM 上,我的本地 Excel 看不到它。此外,沒有其他方法可以連接到不通過網站的 VM。
幫助我哦,聰明而偉大的神。
編輯 回應 Keith Swerling 的評論。我點擊檔案和瀏覽。我看到有一個名為 CTRXPRD 的檔案夾,其中包含子檔案夾。這些子檔案夾中的每一個都具有有權訪問 VM 的人員的企業 ID。

當我單擊瀏覽時,我從我的檔案夾開始,更具體地說是在檔案子檔案夾中。因此,似乎每個企業 ID 在此 VM 上都有一個 Windows 帳戶。
這對我有什么幫助?
uj5u.com熱心網友回復:
我發現了一個巨大的作業。因為我可以將檔案保存在 VM 上,并且我可以從 VM 訪問本地服務器,但反過來不行:
- 創建啟用宏的作業簿 (MEWB)
- 此 MEWB 具有獲取資料并將它們保存在本地服務器上的一個或多個 Excel 檔案中所需的所有宏
- 一旦您對這些宏感到滿意,請在此 MEWB 中創建一個在此 MEWB 打開時運行的宏。這個在 open 上運行的宏只是呼叫所有其他的
- 將此 MEWB 保存為插件 (.xlam)
- 在 Excel 上啟用此 ADDIn,就像使用 Solver AddIn 或任何其他插件一樣
現在,每次打開 Excel 實體時,您撰寫的所有宏都會運行,因此每次連接到 VM 時,它們都會運行,并且您將在本地存盤資料。
這是一個很好的解決方法,但它確實有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429220.html
