Excel VBA打开工作簿时出现类型不匹配错误(Run-time error '13')
解决VBA运行时错误13:类型不匹配问题
嘿,我一眼就揪出问题所在啦!你的代码里变量声明的类型搞错了——你把wb声明成了Workbooks(这代表所有工作簿的集合类型),但Workbooks.Open()方法返回的是单个Workbook对象,两者类型不兼容,这才触发了类型不匹配的错误。
修正后的代码
Sub Check() Dim myFile As Variant Dim wb As Workbook ' 这里改成Workbook,而非Workbooks myFile = Application.GetOpenFilename(Title:="Please Choose the Info File") If myFile = False Then Exit Sub ' 用Exit Sub替代End更规范,不会强制终止整个VBA进程 End If Set wb = Workbooks.Open(myFile) End Sub
额外小建议
除了核心的变量类型问题,我把原来的End换成了Exit Sub,这样用户取消选择文件时,只是退出当前子程序,不会意外终止Excel里其他正在运行的代码或进程,安全性更高。如果之后还遇到异常,可以检查下选择的文件是否是Excel支持的格式(比如.xlsx、.xls等),不过从你的描述来看,核心问题肯定是变量类型不匹配。
内容的提问来源于stack exchange,提问作者Helloguys
相关产品推荐
相关产品推荐

