在Excel VBA列中搜索大于1的值

时间:2017-08-18 13:21:31

标签: excel vba excel-vba

有人知道如何在列中查找大于1的值吗?

Set fileSheet = wb.ActiveSheet
fileSheet.Name = "Test"


Set rng = fileSheet.Range("D:D")
Set rngFound = rng.Find(">1")

If rngFound Is Nothing Then
    MsgBox "No value"
End If

我试图这样做,但我知道如果你把一个双qoute,它将被视为一个字符串,所以有什么办法我可以在过滤之前寻找一个大于1的值它?请注意,我将使用包含数千个数据的列。

3 个答案:

答案 0 :(得分:2)

假设单元格包含数字而不是公式,这应该可以加快速度。数组会更快,但取决于你想要实现的目标。

Sub x()

Dim r As Range, filesheet As Worksheet, Rng As Range

Set filesheet = wb.ActiveSheet
filesheet.Name = "Test"

Set Rng = filesheet.Range("D1", filesheet.Range("D" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers)

For Each r In Rng
    If r.Value > 1 Then
        'do whatever
    End If
Next r

End Sub

答案 1 :(得分:0)

使用两个循环作为最后一列和行的索引,如下所示。 或者,使用活动工作表的范围的foreach循环。 更多信息: How to iterate through all the cells in Excel VBA or VSTO 2005

答案 2 :(得分:0)

显示>的单元格。 1表示D1至D100的范围

Dim i As Integer

With ThisWorkbook.Sheets(1)

For i = 1 To 100

    If .Cells(i,4).Value > 1 Then
        MsgBox "Value Found! Cell D " & i
    End If

Next i

End With