VBA Excel选择文件 - 单击取消时清除文本框
问题描述:
基本上我有一个电子表格,其上有一个表单。在该表单上有一个文本框,其中包含可以从工作表上的单元格预先填充的文件路径。但用户可以选择浏览另一个文件。当他们浏览时,他们可以选择“打开”或“取消”。打开按钮工作正常,并填充文本框,但如果他们选择取消,它会清除文本框,如果它已经填充。我怎样才能停止被清除的文本框?VBA Excel选择文件 - 单击取消时清除文本框
Function GetFileName()
Set MyFile = Application.FileDialog(msoFileDialogOpen)
With MyFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Function
End If
GetFileName = .SelectedItems(1)
End With
End Function
答
这样做的伎俩:
在那里发生的事情我已经把范围缩小到这个代码块。确保文件名具有填充文本框
Private Sub btnBrowse_Click()
Dim sFileName As String
sFileName = GetFileName()
If Len(sFileName) > 0 Then
TextBox1.Value = sFileName
End If
End Sub
Function GetFileName()
Set MyFile = Application.FileDialog(msoFileDialogOpen)
With MyFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Function
End If
GetFileName = .SelectedItems(1)
End With
End Function
假设文字框的值被命名为'TextBox1',你能在'TextBox1_Change()'并处理它相应的检查呢? – jsheeran
你已经缩小了太多。显示的代码既不会填充也不会清除文本框。它调用一个文件对话框,然后对所选文件执行任何操作。无论是否选择文件或单击取消,它都只是结束而不返回任何内容。 –
@AxelRichter我错过了GetFileName = .SelectedItems(1)就在End With之上。我知道它现在出错了,因为GetFileName被设置为“”,然后在我的文本框中填充。我现在在填充文本框之前对它进行测试。感谢您回复,但家伙! – Cornflake2068