2016-11-15 83 views
-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) 

回答

0

我不太清楚如何Shell()作品,但通常,你有来“爆发”你的变量将去的部分。它应该是这样的:

vPID = Shell("notepad.exe ""\\" & ToolID & "\C:\" & FileName & """", vbNormalFocus) 

方式类似,如果你想在喜欢的句子变量“这句话[VAR1]中有空格这是[VAR2]”将是:

myString = "This sentence has " & var1 & " spaces in it. That's " & var2 
+0

感谢您的答复。我会明天尝试这个,看看这是否在shell()中有效。 – mplh2008

+1

@ mplh2008 - “在shell中”和其他任何地方的字符串连接之间没有区别 - 你所做的只是创建一个字符串,然后将其作为参数传递给shell。为了便于调试,您可能希望创建两条命令 - commandString =“notepad.exe”“\\”&ToolID&“\ C:\”&FileName&“”“”'和'vPID = Shell(commandString ,vbNormalFocus)'。 – YowE3K

+0

感谢你们两个,我让它工作。我有很多东西要学, – mplh2008