使用.Hidden或.SpecialCells(xlCellTypeVisible)来忽略隐藏的行 - 不工作

时间:2014-05-21 18:13:49

标签: vba excel-vba excel

此代码使用.Hidden,旨在忽略隐藏的行,但输出无法执行此操作:

For j = [ESDataRow1].Row To lastEIRPSummaryRow
    If [ESPriPred100].Rows(j).EntireRow.Hidden = False Then
        If [ESPriPred100].Rows(j) >= [ESPRiSpec100].Rows(j) Then
            y2count = y2count + 1
        End If
    End If
Next j

所以我尝试使用.SpecialCells(xlCellTypeVisible),它产生"应用程序定义或对象定义的错误":

Dim cel As Range, rng As Range
Set rng = Range(Cells([ESDataRow1].Row, 1), Cells(lastEIRPSummaryRow, 1))

For Each cel In rng.SpecialCells(xlCellTypeVisible)
    If [ESPriPred100].Rows(j) >= [ESPRiSpec100].Rows(j) Then
        y2count = y2count + 1
    End If
Next

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

Sub jzz()
Dim i As Long

For i = 1 To 5
    If Rows(i).EntireRow.Hidden = True Then
        Debug.Print "row: " & i & " is hidden"
    Else
        Debug.Print "row: " & i & " is not hidden"
    End If
Next i
End Sub

适合我,而我却无法打破它。

你能用这样一个简单的子测试吗?如果可行,请添加“复杂性”。一步一步地看看它在哪里打破。 如果它不起作用,请在干净的(新)工作簿中进行测试。