用VBA控制远程虚拟机上的Excel实例 [英] Controling Excel Instance on a Remote Virtual Machine with VBA
本文介绍了用VBA控制远程虚拟机上的Excel实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个非常大的国际集团工作。为了获取组通用的数据,我需要使用Citrix Receiver连接到远程虚拟机(VM)。
此VM的编程方式是,当某人(即非管理员)连接到它时,它会启动一个临时Excel。请注意,非管理员用户只能访问VM上的此Excel实例。在此Excel实例中,有一个我用来查询每天需要获取的组提供的数据的外接程序。我手动执行此操作,并希望自动执行此操作。
我已经设法编写了本地运行的代码。此代码通过公司网站连接到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看不到它。此外,没有其他方法可以连接到未通过网站访问的虚拟机。
请赐予我智慧和伟大的诸神。
编辑 以回应基思·斯沃林的评论。我点击了文件和浏览。我看到有一个名为CTRXPRD的文件夹,它有子文件夹。这些子文件夹中的每个子文件夹都具有对VM具有访问权限的人员的企业ID。
当我单击Browse时,我在我的文件夹中启动,更具体地说,是在Documents子文件夹中启动。因此,似乎每个企业ID在此VM上都有一个Windows帐户。
这对我有什么帮助?
推荐答案
我发现了大量工作。因为我可以将文件保存在虚拟机上,而且我可以从虚拟机访问我的本地服务器,但反之亦然:
- 创建启用宏的工作簿(MEWB)
- 此MEWB包含获取数据并将其保存到本地服务器上的一个或多个Excel文件中所需的所有宏
- 一旦您对这些宏感到满意,请在此MEWB中创建一个在此MEWB打开时运行的宏。此在打开时运行的宏仅调用所有其他宏
- 将此MEWB另存为加载项(.xlam)
- 在Excel上启用此加载项,就像启用规划求解加载项或任何其他加载项一样
现在,每次打开Excel实例时,您编写的所有宏都将运行,因此每次您连接到VM时,它们都将运行,并且您将在本地存储数据。
这是一件糟糕透顶的工作,但很管用。
这篇关于用VBA控制远程虚拟机上的Excel实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文