Excel、VBA、宏、文件-打开或创建、对话框
我正在使用VBA在MS excel中编写宏。我需要打开或创建一个要写入的文件。 该文件可能具有不同的扩展名(即cal),但在内部仅包含文本 我已经查看了许多通过显式说明新文件的路径来创建文件的示例(我找到了一个): 其他示例打开已存在的文件 我想有一个弹出/对话框,允许用户“打开现有文件”或“创建新文件”。我想这是可能的Excel、VBA、宏、文件-打开或创建、对话框,excel,vba,file,output,Excel,Vba,File,Output,我正在使用VBA在MS excel中编写宏。我需要打开或创建一个要写入的文件。 该文件可能具有不同的扩展名(即cal),但在内部仅包含文本 我已经查看了许多通过显式说明新文件的路径来创建文件的示例(我找到了一个): 其他示例打开已存在的文件 我想有一个弹出/对话框,允许用户“打开现有文件”或“创建新文件”。我想这是可能的 我使用字符串/路径和对象使用了应用程序.FileDialog(…)函数,但迄今为止没有太大成功。使用应用程序.FileDialog(…)您的用户应该能够像在Windows资源管
我使用字符串/路径和对象使用了
应用程序.FileDialog(…)
函数,但迄今为止没有太大成功。使用应用程序.FileDialog(…)
您的用户应该能够像在Windows资源管理器中一样创建新的文本文件(通过右键单击并选择new->text file),然后,他们可以选择要将数据输出到的文件
下面的SelectFile(…)
函数返回所选文件的路径(如果未选择文件,则返回空字符串)。按原样使用此函数,用户只能选择一个文件,但考虑到上下文,我希望这不是问题
Public Sub SelectOrCreateFile()
Dim strFileName As String
Dim iFileNum As Integer
iFileNum = FreeFile
strFileName = SelectFile
If strFileName <> "" Then
Open strFileName For Output As #iFileNum
'### WRITE YOUR DATA ###
Close #iFileNum
End If
End Sub
'Returns File Path of file selected with file selection dialog
Public Function SelectFile(Optional DefaultPath As String = "", _
Optional FileType As String = "All Files", _
Optional FileExtension As String = "*.*") As String
Dim F As Object
Set F = Application.FileDialog(msoFileDialogFilePicker)
'Set up FileDialog properties
F.Filters.Clear
F.Filters.Add FileType, FileExtension
F.AllowMultiSelect = False
F.Title = "Select File"
F.ButtonName = "Select"
If DefaultPath <> "" Then F.InitialFileName = DefaultPath
'FileDialog.Show returns False if the user cancels
If F.show Then
SelectFile = F.SelectedItems(1)
Else
MsgBox "No File Selected", vbInformation, "Cancelled"
SelectFile = ""
End If
Set F = Nothing
End Function
Public子选择器创建文件()
将strFileName设置为字符串
作为整数的Dim iFileNum
iFileNum=FreeFile
strFileName=SelectFile
如果strFileName为“”,则
打开strFileName以作为#iFileNum输出
写下你的数据###
关闭#iFileNum
如果结束
端接头
'返回使用“文件选择”对话框选择的文件的文件路径
公共函数SelectFile(可选默认路径为String=“”_
可选文件类型为String=“所有文件”_
可选文件扩展名为字符串=“**”)为字符串
将F作为对象
Set F=Application.FileDialog(msoFileDialogFilePicker)
'设置文件对话框属性
清除过滤器
F.Filters.Add文件类型、文件扩展名
F.AllowMultiSelect=False
F.Title=“选择文件”
F.ButtonName=“选择”
如果为DefaultPath“”,则F.InitialFileName=DefaultPath
'FileDialog.Show如果用户取消,则返回False
如果F.show那么
SelectFile=F.SelectedItems(1)
其他的
MsgBox“未选择文件”,vbInformation,“已取消”
SelectFile=“”
如果结束
设置F=无
端函数
希望这有帮助 展示您的尝试,描述导致的问题,并提供帮助。另请阅读:,特别强调“标题”部分。
Public Sub SelectOrCreateFile()
Dim strFileName As String
Dim iFileNum As Integer
iFileNum = FreeFile
strFileName = SelectFile
If strFileName <> "" Then
Open strFileName For Output As #iFileNum
'### WRITE YOUR DATA ###
Close #iFileNum
End If
End Sub
'Returns File Path of file selected with file selection dialog
Public Function SelectFile(Optional DefaultPath As String = "", _
Optional FileType As String = "All Files", _
Optional FileExtension As String = "*.*") As String
Dim F As Object
Set F = Application.FileDialog(msoFileDialogFilePicker)
'Set up FileDialog properties
F.Filters.Clear
F.Filters.Add FileType, FileExtension
F.AllowMultiSelect = False
F.Title = "Select File"
F.ButtonName = "Select"
If DefaultPath <> "" Then F.InitialFileName = DefaultPath
'FileDialog.Show returns False if the user cancels
If F.show Then
SelectFile = F.SelectedItems(1)
Else
MsgBox "No File Selected", vbInformation, "Cancelled"
SelectFile = ""
End If
Set F = Nothing
End Function