-2
我对VBA非常陌生,诚实地不知道自己在做什么。VBA - 如何将变量传递到网络文件路径
问题: 我需要一个宏来根据用户的输入转到文件网络路径。但我不知道是否有可能将两个变量传递到网络路径中。或者如果有其他方法可以做到这一点。例如:
例如)用户将从下拉列表中选择他们想要的文件名以及该文件位于主Excel表单中的IP地址。有许多类型的文件和IP地址,所以我不想将它们全部写入宏。
目前我所拥有的是下面的硬编码,指出实际位置(IP地址)和FileName。
Dim vPID As Variant vPID = Shell("notepad.exe ""\\105.xxx.xx.xx\C:\FileName""", vbNormalFocus)
有人可以指点我一个很好的资源,我可以研究吗?我一直在网上搜索几个小时,找不到与我想要做的事直接相关的任何内容。
我尝试了下面的内容,但由于我错误地插入了变量,无法找到网络路径。
注意:将要打开的文件是XML格式,将在记事本中打开并且不会转换为.xls。
注:ToolID单元格区域中引用了一个IP地址“G6” 文件名引用单元格范围中的“I3”
Dim ToolID As String
Dim FileName As String
Dim vPID As Variant
Dim GetFile As Workbook
Set GetFile = ThisWorkbook
FileName = ThisWorkbook.Worksheets("Sheet1").Range("G6").Value
ToolID = ThisWorkbook.Worksheets("Sheet1").Range("I3").Value
vPID = Shell("notepad.exe ""\\ToolID\C:\FileName""", vbNormalFocus)
感谢您的答复。我会明天尝试这个,看看这是否在shell()中有效。 – mplh2008
@ mplh2008 - “在shell中”和其他任何地方的字符串连接之间没有区别 - 你所做的只是创建一个字符串,然后将其作为参数传递给shell。为了便于调试,您可能希望创建两条命令 - commandString =“notepad.exe”“\\”&ToolID&“\ C:\”&FileName&“”“”'和'vPID = Shell(commandString ,vbNormalFocus)'。 – YowE3K
感谢你们两个,我让它工作。我有很多东西要学, – mplh2008