好的,所以我绝对是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周是工作表的技术名称(未显示名称)
答案 0 :(得分:0)
在子中,改变这个:
ThisWorkbook.UpdateSheets (Week2)
到这个
Call UpdateSheets(ThisWorkbook.Worksheets("Week2"))
见similar question on SO
UpdateSheets
个对象没有ThisWorkbook
个成员。