Excel VBA错误438“对象不支持此属性或方法”

时间:2015-03-28 20:11:40

标签: excel vba excel-vba

好的,所以我绝对是VBA的新手,但我正在学习。据我所知,我的代码没有理由不能正常运行,而且过去也没有。但是这个错误不断涌现。我的目的是制作一张能够在将人物添加到主工作表时自动更新其他工作表的工作表。代码似乎工作和有,但它突然抛出这个错误,我无法弄清楚为什么。我环顾四周,但没有一个解决方案似乎与我的问题有很大关系。非常感谢任何有关确定错误位置的帮助!

以下是调试器说错误的地方:

Private Sub Worksheet_Activate()
    ThisWorkbook.UpdateSheets (Week2)
End sub

这是被调用的函数:

Public Function UpdateSheets(ByRef w As Worksheet)
HowManyPeople
With w
    .Columns("A:W").HorizontalAlignment = xlCenter
    Dim i As Integer
    Dim j As Integer
    For i = 1 To x
        If IsEmpty(.Cells(i, 2)) Then
            For j = 2 To 12
                .Cells(i + 4, j).Borders.LineStyle = xlContinuous
                If j <> 12 Then
                    .Cells(i + 4, j).Interior.ColorIndex = 2
                    .Cells(i + 4, j).Locked = False
                Else
                    .Cells(i + 4, j).Interior.ColorIndex = 15
                    .Cells(i + 4, j).Locked = True
                End If
                If j = 2 Then
                    .Cells(i + 4, j).Value = Week1.Cells(i + 4, j)
                Else
                    .Cells(i + 4, j).Value = "0"
                End If
            Next j
        End If
    Next i
    i = x + 5
    Do
        For j = 2 To 12
            .Cells(i, j).Borders.LineStyle = xlNone
            .Cells(i, j).Interior.ColorIndex = 2
            .Cells(i, j).Locked = True
            .Cells(i, j).Value = ""
        Next j
        i = i + 1
    Loop Until IsEmpty(.Cells(i, j))
End With

End Function

函数HowManyPeople是一种基本的行计数方法。 x是HowManyPeople方法中给定值的公共工作簿变量。第1周和第2周是工作表的技术名称(未显示名称)

1 个答案:

答案 0 :(得分:0)

解决方案

在子中,改变这个:
ThisWorkbook.UpdateSheets (Week2)
到这个 Call UpdateSheets(ThisWorkbook.Worksheets("Week2"))

问题说明

similar question on SO
UpdateSheets个对象没有ThisWorkbook个成员。