我正在尝试在excel中编写一个宏,该宏将识别行(A2)中的第一个值,然后搜索该行的其余部分以清除具有更大值(C2:DGA2)的任何单元格。我想对此进行设置,以使程序循环遍历列(A2:A400)中的每一行,并清除相应的值。
我尝试使用下面的代码,这些代码是我从另一篇文章中修改的:
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
我对其进行了修改以满足自己的需求,但它仅适用于第一行。我需要一些帮助使其遍历第一列的每一行。
感谢您的帮助。
我正在尝试在excel中编写一个宏,该宏将识别行(A2)中的第一个值,然后搜索该行的其余部分以清除具有更大值(C2:DGA2)的任何单元格。
根据以上陈述,我假设所有范围都在同一张纸上。如果我进行一些更改,那么您的代码对我有用。看到这个
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句