选择要导出.xlsx文件VBA的文件路径
我正在尝试编写一段代码,允许用户在将单独的.xlsx文件中的数据导出到文件夹之前选择文件夹的文件路径。预先查找文件夹的路径并硬编码很容易,但我希望这个程序允许用户每次选择一个文件夹。实际上,我有一个利用excel打开文件对话框的函数。从那里,我可以找到我需要的文件夹,只需从顶部栏复制文件路径并点击“取消”。代码如下:选择要导出.xlsx文件VBA的文件路径,vba,excel,Vba,Excel,我正在尝试编写一段代码,允许用户在将单独的.xlsx文件中的数据导出到文件夹之前选择文件夹的文件路径。预先查找文件夹的路径并硬编码很容易,但我希望这个程序允许用户每次选择一个文件夹。实际上,我有一个利用excel打开文件对话框的函数。从那里,我可以找到我需要的文件夹,只需从顶部栏复制文件路径并点击“取消”。代码如下: Function GetFileDestination() As String Dim DataObj As New MSForms.DataObject 'Th
Function GetFileDestination() As String
Dim DataObj As New MSForms.DataObject
'This MsgBox just tells the user what to do
MsgBox "To get the file Destination, the 'Open File' Dialog Box will open. Go to the folder_
you want to use, click on the bar at the top, and copy the destination. Then hit Cancel",_
vbOKOnly, "Finding the File Destination"
Application.Dialogs(xlDialogOpen).Show
DataObj.GetFromClipboard
GetFileDestination = DataObj.GetText
End Function
这可以完成任务,但看起来相当草率,因为它强制用户手动复制所需的文件路径,然后取消“打开文件”对话框。
在保持相同功能的同时,是否有人知道一种更具创造性和简洁的方法
提前谢谢 函数GetFolder(strPath作为字符串)作为字符串
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
Dim fldr As FILE对话框
以字符串形式显示
设置fldr=Application.FileDialog(msoFileDialogFolderPicker)
与fldr
.Title=“选择一个文件夹”
.AllowMultiSelect=False
.InitialFileName=strPath
如果.Show-1,则转到下一个代码
sItem=.SelectedItems(1)
以
下一个代码:
GetFolder=sItem
设置fldr=无
端函数
以下是描述:
Application.FileDialog(msoFileDialogFolderPicker)
-文件夹对话框提示用户
选择一个目录路径strPath
-将传递给函数的默认路径show
-如果用户选择取消对话框,将分配值“0”,否则分配值“-1”GetFolder=sItem
-此语句返回所选/打开文件夹的路径,
如果单击取消按钮,则返回else Null希望这能澄清所使用的整体逻辑。您看到了吗?这非常有效,谢谢Rusk!不知道大部分是怎么工作的,但我不是在抱怨!我已经添加了答案及其解释,供您参考。