删除任何值大于特定单元格值的单元格

我想为以下创build一个macros:

对于每一行,如果在范围C3:ACP3中的单元格值是>= ACU3值,我想用空白replace该单元格值。 我想为每一行都做这个,每次macros应该引用该行的ACU列中的值。

尝试这个:

 Sub FindDelete() Dim ACU_Val As Double Dim cl As Range Dim rw As Long For rw = 1 To Rows.Count If Range("ACU" & rw).Value = "" Then Exit For ACU_Val = Range("ACU" & rw).Value For Each cl In Range("C" & rw & ":ACP" & rw) If cl.Value >= ACU_Val Then cl.Value = "" Next cl Next End Sub 

您需要遍历所需的单元格范围,并且对于同一行的ACU列中的阈值以上的每个单元格,只需清除其内容即可。

 For Each c In Range("C3:ACP3") If c.Value >= Cells(c.Row, "ACU") Then c.clearContents End If Next c 

简单:

 Dim myCell As Range numberOfRows = 1000 For i = 0 To numberOfRows Dim myRow As Range Set myRow = [C3:ACP3].Offset(i, 0) bound = Intersect([acu3].EntireColumn, myRow.EntireRow) For Each myCell In myRow If myCell >= bound Then myCell = "" Next Next 

尝试这个:

 Sub makeBlank() Dim r As Range Set r = Excel.ThisWorkbook.Sheets("Sheet1").Range("C3:ACP3") Dim v As Double v = Excel.ThisWorkbook.Sheets("Sheet1").Range("ACU3").Value Dim c For Each c In r If c.Value >= v Then c.Value = "" End If Next c End Sub 

编辑

我怀疑这会更快使用数组:

 Sub makeBlank2() Dim v v = Excel.ThisWorkbook.Sheets("Sheet1").Range("ACU3").Value Dim Arr() As Variant Arr = Sheet1.Range("C3:ACP3") 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("C3:ACP3") = Arr End Sub