excel 变体变量类型接收到运行时错误13

a11xaf1n  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(109)

我正在用VBA编写一个小脚本,它可以进行基本的下钻,并从找到的文件中收集数据,然后将它们放入数组中。我知道我正在找到正确的文件,我正在确保重新调整我的数组以适应新的添加(是的,我在尝试访问数据之前打开文件)。无论如何,当我试图访问工作表中的单元格值时,我得到了一个数据类型不匹配(运行时错误13)。这发生在访问的第一个文件,我知道这是一个xls文件。

For Each oFile In oFolder.Files
    
        length = UBound(Inspections)

        ReDim Preserve Inspections(length + 1)
        ReDim Preserve fridgeDoc(length + 1)
        ReDim Preserve fridgeWalk(length + 1)
        ReDim Preserve nrgEff(length + 1)
        ReDim Preserve mheDoc(length + 1)
        ReDim Preserve mheWalk(length + 1)
        ReDim Preserve buildingDoc(length + 1)
        ReDim Preserve buildingWalk(length + 1)
        
        Workbooks.Open oFile
        
        'error occurs at line directly below
        burner = Workbooks(oFile).Worksheets(1).Cells(11, 3)
        
        MsgBox (VarType(burner))

这更令人费解,因为出于诊断的目的,我做了一个变量类型的燃烧器变量,我不知道什么会违反变量数据类型。如果我能得到进一步调试技术的任何提示,那就太棒了。包含本地化代码段。谢谢!

yh2wf1be

yh2wf1be1#

您应该用途:
burner = Workbooks(oFile.Name).Worksheets(1).Cells(11, 3).Value
在excel中打开的工作簿按其名称引用,而不是按其完整路径引用。
理想情况下,正如BigBen所指出的那样,这样做会更整洁:

With Workbooks.Open(oFile)
    burner = .Worksheets(1).Cells(11, 3).Value
    .Close False
End with

相关问题