如果.Show等于 -1,就会出现编译错误:类型不匹配
With UFRM_ImageTypePicker
If .Show = -1 Then
编译错误:类型不匹配。if语句中的等号被选中并高亮为引发错误的文本。
它已经工作了好几周,今天突然出现这个编译错误,我完全不知道该怎么修复。我多年来一直在使用这段相同的基本代码结构,涉及多个用户窗体,直到今天才出现问题;现在完全不知所措。
我在VBA for Word、Excel和 PowerPoint中都使用过这个基本结构。我目前正在Visio中进行我的第一个VBA项目,不知道是否会对这件事有影响。
我确实需要添加对Excel的引用,这样我才能使用文件和文件夹对话框,因为Visio原生并不提供它们。
有谁有办法吗?
解决方案
我确实需要添加对Excel的引用,这样我才能使用文件和文件夹对话框,因为Visio原生不提供它们。
我不知道它在Visio中是否可行,但这是一个文件对话框的示例。
需要对 Microsoft Excel 16.0 Object Library 的引用设置。
Dim excelApp As New Excel.Application
Dim fd As FileDialog
Set fd = excelApp.FileDialog(msoFileDialogFilePicker)
With fd
' Show the dialog
If .Show = -1 Then ' -1 means OK clicked
MsgBox .SelectedItems(1)
Else
MsgBox "Cancelled"
End If
End With
我以为你是在尝试在UserForm中实现FileDialog的功能。
你可以按如下方式获取UserForm的返回值。
UserForm1
Option Explicit
Public Result As Integer
Private Sub UserForm_Activate()
Result = 0
End Sub
Private Sub OkButton_Click()
Result = -1
Me.Hide
End Sub
Private Sub CancelButton_Click()
Result = 0
Me.Hide
End Sub
Module
Option Explicit
Sub Test()
With UserForm1
.Show
If .Result = -1 Then
MsgBox "OK"
Else
MsgBox "Canceled"
End If
End With
End Sub
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。