Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 未设置对象变量_Vba_Excel - Fatal编程技术网

Vba 未设置对象变量

Vba 未设置对象变量,vba,excel,Vba,Excel,我不断得到一个“对象变量未设置”错误与此代码。我想偏移startcell单元格地址以获取相应列的平均值。但是,vba尝试偏移startcell的值,而不是单元格地址。如果有人能给我一些指导就太好了。谢谢 Sub Macro1() Dim i As Integer Dim rowcount As Integer Dim startcell As Range startcell = ActiveSheet.Cells(2, 3).Address(False, Fa

我不断得到一个“对象变量未设置”错误与此代码。我想偏移startcell单元格地址以获取相应列的平均值。但是,vba尝试偏移startcell的值,而不是单元格地址。如果有人能给我一些指导就太好了。谢谢

Sub Macro1()

    Dim i As Integer
    Dim rowcount As Integer
    Dim startcell As Range

    startcell = ActiveSheet.Cells(2, 3).Address(False, False)
    rowcount = Range("C2", Range("C2").End(xlDown)).Count

    For i = 1 To rowcount
        If Not Cells(i, 3).Value = Cells(i + 1, 3).Value Then
            startcell.Offset(0, 11).Value = Application.WorksheetFunction.Average( _
            Range(startcell.Offset(0, 8), Cells(i, 11)))
            startcell = ActiveSheet.Cells(i + 1, 3).Address(False, False)
        End If
    Next i

End Sub

要在变量中保存给定的范围,可以使用其
地址
(字符串)或
范围
对象。后者通常是首选,看起来这是你的初衷

Dim startcell As Range
....
Set startcell = ActiveSheet.Cells(2, 3) ' <-- Set a range object variable
....
Set startcell = ActiveSheet.Cells(i + 1, 3) ' <-- Set
Dim startcell作为范围
....

设置startcell=ActiveSheet.Cells(2,3)“要在变量中保存给定的范围,可以使用其
地址(字符串)或
范围
对象。后者通常是首选,看起来这是你的初衷

Dim startcell As Range
....
Set startcell = ActiveSheet.Cells(2, 3) ' <-- Set a range object variable
....
Set startcell = ActiveSheet.Cells(i + 1, 3) ' <-- Set
Dim startcell作为范围
....

设置startcell=ActiveSheet。单元格(2,3)对范围变量startcell使用
Set
<代码>设置startcell=ActiveSheet.Cells(2,3)
我做了,但现在它给了我一个“需要对象”错误?使用
设置startcell=ActiveSheet.Range(单元格(2,3),单元格(2,3))
为范围变量startcell使用
设置
<代码>设置startcell=ActiveSheet.Range(单元格(2,3),单元格(2,3)
我做了,但现在它给了我一个“需要对象”的错误?使用
设置startcell=ActiveSheet.Range(单元格(2,3),单元格(2,3))