误解了这个问题。
这是另一种方式。
更换
TextBox1.Value = GetFolder
与
ActiveSheet.Shapes("Textbox1").OLEFormat.Object.Object.Text = getfolder
在一个更结构化的方式...
Sub Button2_Click()
Dim File_Path As Long
Dim shp As Shape
Set shp = ActiveSheet.Shapes("Textbox1")
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
getfolder = .SelectedItems(1)
shp.OLEFormat.Object.Object.Text = getfolder
End With
End Sub
而且不是Application.FileDialog(msoFileDialogOpen)
你可以使用内置的Application.GetOpenFilename
Private Sub CommandButton1_Click()
Dim Ret
Ret = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*")
If Ret <> False Then _
ActiveSheet.Shapes("Textbox1").OLEFormat.Object.Object.Text = getfolder
End Sub
顺便说一句"Excel Files (*.xls*), *.xls*"
到"All Files (*.*), *.*"
如果你想显示所有文件,而不仅仅是Excel文件。
错误提示,你没有任何'文本框object'在Activesheet或UserForm上。可能的解决方案(当谈到ActiveSheet时):'ActiveSheet.TextBox1.Value = GetFolder' –
谢谢KazJaw ...我在表上有一个文本框,我不知道如何对此进行排序.. – user3172566
请参阅下面的答案。 .. –