2014-05-08 241 views
2

我想要一個宏來打開Windows資源管理器,只選擇一個文件,但不希望它打開文件。 我有一個excel文檔名稱列表拆分成一些變量。 我還在其中包含了一些超鏈接,所以你可以直接打開選定的文件。 但現在我想要一個宏,在瀏覽器中選擇相應的文件,並選擇它。 所有文件都位於預定義位置,但所有文件名都是不同的,當然。 示例; d:\用戶名\文檔\工作計劃\ document.001.1.xls d:\用戶名\文檔\工作計劃\ document.002.2.xls d:\用戶名\文檔\工作計劃\ document.003.3.xlsVBA打開資源管理器,並選擇,不打開,選定的文件名

我想要在Excel中選擇相應的文件名,並啓動宏在資源管理器中選擇它。 因此,例如我選擇單元格D3並啓動宏,以便它打開資源管理器並轉至以下地址並選擇該文件; d:\用戶名\文檔\工作計劃\ document.002.2.xls

 A     B    C    D     E 
1. var 1    var 2   var 3  doc. Name   Hyperlink 
2. document   1    1  document.001.1.xls document.001.1 
3. document   2    2  document.002.2.xls document.002.2 
4. document   3    3  document.003.3.xls document.003.3 

如果我直接使用下面的代碼,以它就像我多麼希望它是鏈接,但文件名是可變的。

Sub open_explorer() 
Shell "C:\Windows\explorer.exe /select,D:\username\Documents\workplans\document.002.2.xls", vbMaximizedFocus 
End Sub 

我調整了代碼,但它不起作用。我認爲問題出在(&範圍(activeCell.select))。 我如何得到這個工作?

Sub open_explorer() 
Shell "C:\Windows\explorer.exe /select, D:\username\Documents\workplans\ &Range ActiveCell.Select", vbMaximizedFocus 
End Sub 

回答

7

試試這個:

Sub open_explorer() 
Shell "C:\Windows\explorer.exe /select, ""D:\username\Documents\workplans\" _ 
    & ActiveCell.Value & """", vbMaximizedFocus 
End Sub 

注意引號周圍有空格或其他特殊字符任何路徑所需。 在上面的字符串中加了,在D:之前和ActiveCell.Value之後(連接到字符串的末尾)放了一個雙引號 char前後的路徑。

+0

太棒了,這正是我們需要的!非常感謝! – user3572958

+0

@ user3572958如果這是您需要的,請標記爲答案。謝謝! – GlennFromIowa

+0

@GlennFromIowa任何想法,爲什麼我只是打開資源管理器,當我使用宏,但像魅力一樣,如果我直接在cmd窗口中使用命令? (使用Win10和Office 2016) – Phab

0

上面只適用於我,如果我添加一個擴展名,如「.xls」的文件名。

Sub open_explorer() 
Shell "C:\Windows\explorer.exe /select, D:\username\Documents\workplans\" & ActiveCell.Value & ".xls", vbMaximizedFocus 
End Sub 
+0

另請參閱我的帖子:http://www.mrexcel.com/forum/excel-questions/906667-visual-basic-applications-macro-open-explorer-select-file.html#post4361586 – id11

+0

如果您不包括活動單元中的文件名**中的擴展**,則是的,您需要將擴展​​添加到VBA字符串中。如果你的擴展**包含在ActiveCell.Value中,就像OP的一樣,它將不會**找到一個名稱爲D的文件,例如'D:\ username \ Documents \ workplans \ document.001.1 .xls.xls' – GlennFromIowa

相關問題