我正在构建一个合格人员的工作表,搜索行中的每个范围(每行是一个人,列是不同的资格),以查明该范围是否为空,如果不是,则该人的姓名将被添加到列表中。
问题是为什么程序没有采用rng = Worksheets("Q Matrix").Range(Cells(i, 5), Cells(i, 8))
并将其报告为错误1004?
Private Sub CommandButton1_Click()
Dim rng As Range
Dim lastr As Long, lastr1 As Long
Dim i As Integer
Application.ScreenUpdating = False
lastr = Worksheets("Auditorenliste").Range("B" & Rows.Count).End(xlUp).Row + 1
lastr1 = Worksheets("Q Matrix").Range("B" & Rows.Count).End(xlUp).Row + 1
For i = 6 To lastr1
rng = Worksheets("Q Matrix").Range(Cells(i, 5), Cells(i, 8)) 'range("E" & i & ":G" & i)
If WorksheetFunction.CountA(rng) > 0 Then
Worksheets("Auditorenliste").Cells(lastr1, 2).Value = Worksheets("Q Matrix").Cells(i, 2).Value
End If
Next
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
您需要使用Set关键字来设置对象变量的值。:
eVars