用变量设置范围

时间:2018-01-24 08:49:03

标签: excel vba excel-vba

我正在构建一个合格人员的工作表,搜索行中的每个范围(每行是一个人,列是不同的资格),以查明该范围是否为空,如果不是,则该人的姓名将被添加到列表中。

问题是为什么程序没有采用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

1 个答案:

答案 0 :(得分:0)

您需要使用Set关键字来设置对象变量的值。:

eVars