已有23人关注
发表在VB答疑区 2010-09-15
是否精华
版块置顶:
在视频学Visual Basic里的实列11\11.6中运行代码,点击“选择文件”对话框打开后,点击“取消”会报错“实时错误‘13’  类型不匹配”, 错误提示在If UBound(arr) > LBound(arr) Then,我查看后获知显示arr为“空”,我的理解是当点击“取消”后,没有文件被选中,UBound函数不能对“空”的数组取值,所以出现“类型不匹配”的错误,注解掉代码中的CancelError = False 也不行,分析后确定该代码与上述错误没有关系。但是不知道怎么去解决。
指教为盼!

Option Explicit

Private Sub Command1_Click()
    Dim arr, i As Integer                                       '声明变体变量arr,整型变量i
    List1.Clear                                             '清除列表项
    With CommonDialog1                                      '复用语句
        .Flags = cdlOFNAllowMultiselect + cdlOFNExplorer            '设置对话框样式
        .CancelError = False                                    '点"取消"按钮不报错
        .FileName = ""                                      '清空文件名
        .ShowOpen                                           '显示文件多选对话框

        If .FileName <> "" Then                             '当已选择文件时
            arr = Split(.FileName, Chr(0))                      '将字符串拆分为数组
        End If
    End With

    If UBound(arr) > LBound(arr) Then                           '当数组长度大于1时
        Label1.Caption = "路径:" & arr(LBound(arr))                '显示文件所在路径
        For i = LBound(arr) + 1 To UBound(arr)                  '显示文件所在路径
            List1.AddItem arr(i)                                '在列表项中添加文件名称
        Next i
    Else
        File1.FileName = CommonDialog1.FileName     '设置文件名属性用于获取所选文件路径
        Label1.Caption = "路径:" & File1.Path                  '显示文件所在路径
        List1.AddItem File1.FileName                            '在列表项中添加文件名称
    End If
End Sub


Private Sub Command2_Click()
    End
End Sub
分享到:
精彩评论 1
vbsoldier
学分:0 LV1
2010-09-15
沙发
您好,下面是修改后的代码,试一下。
Private Sub Command1_Click()
Dim arr, i As Integer '声明变体变量arr,整型变量i
List1.Clear '清除列表项
With CommonDialog1 '复用语句
.Flags = cdlOFNAllowMultiselect + cdlOFNExplorer '设置对话框样式
.CancelError = False '点"取消"按钮不报错
.FileName = "" '清空文件名
.ShowOpen '显示文件多选对话框

If .FileName <> "" Then '当已选择文件时
arr = Split(.FileName, Chr(0)) '将字符串拆分为数组
If UBound(arr) > LBound(arr) Then '当数组长度大于1时
Label1.Caption = "路径:" & arr(LBound(arr)) '显示文件所在路径
For i = LBound(arr) + 1 To UBound(arr) '显示文件所在路径
List1.AddItem arr(i) '在列表项中添加文件名称
Next i
Else
File1.FileName = CommonDialog1.FileName '设置文件名属性用于获取所选文件路径
Label1.Caption = "路径:" & File1.Path '显示文件所在路径
List1.AddItem File1.FileName '在列表项中添加文件名称
End If
End If
End With

End Sub

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照