VBA,根据单元格值选择行

时间:2018-08-16 14:13:10

标签: vba excel-vba

我的数据是动态的,并且我必须存储的唯一值都大于零并且位于H列中。因此,在保存记录之前,必须删除H列中包含0的行。

我当前的选择只是硬编码在数据集下方。

编辑:如何在清除之前根据整个行的H列值将选择过程从硬编码更改为公式。 *具体是

`Range("A4:J8").Select

    Selection.ClearContents`

这是我的代码供参考。 谢谢!

Sub openCSV() 
    Range("A4:J8").Select

    Selection.ClearContents
    Selection.ClearContents
    ActiveWorkbook.Save
    ActiveWorkbook.Save
    SendKeys String:="%slc{enter}", Wait:=True
    Application.Wait (Now + TimeValue("00:00:03"))
    ActiveWindow.Close
End Sub

1 个答案:

答案 0 :(得分:-2)

我不确定我是否100%理解了这些问题。如果您要提供的只是如何根据列值清除行的内容,那么此代码将为您工作:

Sub openCSV()
    Dim lRow As Long

    lRow = Cells(Rows.Count, 1).END(xlUp).Row 'finds last row

    'Loop from the last row to the first (assuming row 1 is header data so stopping at row 2)
    For i = lRow To 2 Step -1
        'Perform whatever test you want on column H
        If ActiveSheet.Range("H" & i).Value = 0 Then
            ActiveSheet.Rows(i).ClearContents
        End If
    Next i

    Range("A4:J8").Select

    ActiveWorkbook.Save
    ActiveWorkbook.Save
    SendKeys String:="%slc{enter}", Wait:=True
    Application.Wait (Now + TimeValue("00:00:03"))
    ActiveWindow.Close
End Sub

我正在使用反向循环,因为我不确定您的要求。如果您最终想要删除该行,那么此代码从头到尾仍然可以使用。如果您只清除内容,则可以选择任一方向,但仍然可以使用。