select文件并显示path时出现“object required”错误

我想通过点击我可以select一个文件,所选文件的path将显示在同一个Excel表单上的文本框上的Excel表单上的浏览button。这是我试过的代码:

Dim File_Path As Long With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = False .Show GetFolder = .SelectedItems(1) TextBox1.Value = GetFolder End With End Sub 

当我运行的代码,我能够select一个文件,但然后我得到一个运行时错误“对象需要”和行

 TextBox1.Value = GetFolder 

是突出显示。任何人请帮助我这个,谢谢你。

错误提示您在Activesheet中没有任何TextBox对象,或者对象引用不完整。

可能的解决scheme(当谈到ActiveSheet时):

 ActiveSheet.TextBox1.Value = GetFolder 

或者在谈论任何其他表格时:

 Sheets("NameOfTheSheetHere").TextBox1.Value = GetFolder 

误解了这个问题。

这是另一种方式。

更换

 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文件"Excel Files (*.xls*), *.xls*" BTW把"Excel Files (*.xls*), *.xls*"改为"All Files (*.*), *.*"