2016-11-15 132 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