简体   繁体   中英

Macro/VBA: Clear cells in a row based on values in a column, and loop through entire column

I'm trying to write a macro in excel that will identify the first value in a row (A2) and then search the rest of the row to clear any cell with a greater value (C2:DGA2). I'd like to set this up such that the program loops through every row in the column (A2:A400), and clears the corresponding values.

I tried using the following code, which I modified from another post:

Sub clear_cell()
Dim v
v = Excel.ThisWorkbook.Sheets("TOP LINE").Range("B2").Value

Dim Arr() As Variant
Arr = Sheet1.Range("C2:DGJ2")

Dim r, c As Long
For r = 1 To UBound(Arr, 1)
    For c = 1 To UBound(Arr, 2)
        If Arr(r, c) > v Then
            Arr(r, c) = ""
        End If
    Next c
Next r

Sheet1.Range("C2:DGJ2") = Arr

End Sub

I modified it to fit my needs, but it only works for the first row. I need some help getting it to loop through every row in the first column.

Thank you for the help.

I'm trying to write a macro in excel that will identify the first value in a row (A2) and then search the rest of the row to clear any cell with a greater value (C2:DGA2).

From the above statement, I am assuming that all ranges are in the same sheet. Your code works for me if I make a few changes. See this

Sub clear_cell()
    Dim i As Long, j As Long
    Dim Arr

    '~~> Set Range here
    Arr = Sheet1.Range("A2:DGJ400").Value

    For i = 1 To UBound(Arr, 1)
        For j = 2 To UBound(Arr, 2)
            If Arr(i, j) > Arr(i, 1) Then
                Arr(i, j) = ""
            End If
        Next j
    Next i

    '~~> Write back to the sheet
    Sheet1.Range("A2:DGJ400") = Arr
End Sub

give this a try:

Sub clear_cell()
    x = 2
    Do While x <= 400
    Y = Range(Cells(x, 2), Cells(x, 2)).Value
    If Y < 100 Then Range(Cells(x, 2), Cells(x, 2)).FormulaR1C1 = ""
    x = x + 1
    Loop
End Sub

The 2 is the column range, in this case B. Good Luck.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM