Catia VBA新增文件夹浏览按钮时报User defined type not defined错误求助
报错原因
你遇到的User-defined type is not defined(用户定义类型未定义)报错有两个核心原因:
FileDialog是Microsoft Office对象库中的类型,Catia VBA默认没有加载对应的引用,无法识别该类型。- 代码中直接调用
Application.FileDialog,Catia VBA里的Application指向CATIA应用本身,不存在该方法。
另外你当前代码使用的msoFileDialogFilePicker是文件选择器,如果你实际要实现浏览选择文件夹的需求,参数也需要对应调整。
解决方法
推荐使用无需提前引用的晚绑定方案,兼容性更强,不用额外配置库引用:
Private Sub BrowseButton_Click() Dim fldr As Object Dim sItem As String ' 参数说明:3=选择文件,4=选择文件夹,根据你的需求调整 Set fldr = CreateObject("Office.FileDialog", 4) With fldr .Title = "选择目标路径" .AllowMultiSelect = False ' 这里的strPath需要提前赋值,比如默认打开桌面可以写:.InitialFileName = Environ("USERPROFILE") & "\Desktop" .InitialFileName = strPath If .Show <> -1 Then GoTo NextCode sItem = .SelectedItems(1) End With NextCode: GetFile = sItem Set fldr = Nothing End Sub
如果偏好带语法提示的早期绑定方案,可以按以下步骤操作:
- 打开Catia VBA编辑器,依次点击
Tools>References(工具>引用) - 在可用引用列表中找到对应版本的
Microsoft Office [版本号] Object Library,勾选后点击确定即可。 - 绑定完成后将代码中创建
fldr的语句修改为Set fldr = New FileDialog(msoFileDialogFolderPicker)(选文件夹)或Set fldr = New FileDialog(msoFileDialogFilePicker)(选文件)即可正常运行。
注意:早期绑定方案对Office版本有依赖,如果其他用户的Office版本和你不一致,可能会出现兼容报错。
内容的提问来源于stack exchange,提问作者Gokul Prasanth
相关产品推荐
相关产品推荐

