Excel 即使变量为整数,也需要对象

Excel 即使变量为整数,也需要对象,excel,vba,Excel,Vba,我不知道为什么在单元格中设置图像计数=数字时会出现运行时错误424(需要对象)。任何帮助都将不胜感激 Public Function InsertPictureInCell() As Object ImageCount = CInt(sheetImages.Cells(1, 4)) Dim x As Object sheetImages.Paste Set x = sheetImages.Shapes(Selection

我不知道为什么在单元格中设置图像计数=数字时会出现运行时错误424(需要对象)。任何帮助都将不胜感激

Public Function InsertPictureInCell() As Object


         ImageCount = CInt(sheetImages.Cells(1, 4))
         Dim x As Object


            sheetImages.Paste
    Set x = sheetImages.Shapes(Selection)
    x.top = [C4].top
    x.Left = [C4].Left
    x.Height = [C4].Height
    Selection.ShapeRange.IncrementTop [C3].Height * ImageCount 

        'sheetImages.Shapes(picname).IncrementTop [C3].Height * ImageCount
        sheetImages.Cells(ImageCount + 2, 2) = CStr(x.Name)
        'sheetProject.Cells(12, 2) = PictureFileName
End Function

sheetImages
似乎是一个工作表,但我看不出它是否是Set

看起来您没有声明
sheetImages
(或者实际上没有声明任何变量)

除此之外,
sheetImages
没有赋值,因此除非它在其他地方被初始化,否则它在这个函数范围内被初始化为一个空变量,如果你把它当作一个对象来对待,这将引发424错误,因为它不是一个对象


在代码模块的顶部使用
Option Explicit
,以帮助强制执行变量声明(并提醒您有编译错误的打字错误)

打开此模块顶部的
选项Explicit
。看起来您没有声明
sheetImages
(或者实际上没有声明任何变量)。除此之外,
sheetImages
没有赋值,所以它被初始化为一个空变量,如果你把它当作一个对象来对待,就会产生424错误,因为它不是一个对象。
sheetImages
看起来是一个空变量,尽管它可能是一个工作表:)我可能很愚蠢。我在主函数中设置了所有这些值,在测试这个函数时,我没有调用设置这些值的函数。它正在工作。Thanks@DaIndian2040我通常会把像这样的物体尽可能地放大。一旦将它们设置为
,就可以在整个系统中看到它们。