0

是否可以根据一个值(即 if )清除大量单元格>1?我正在使用 Excel for Mac 2011。

我想将数千个值转换>1为大型数据集中的空单元格(600 行 x 450K)。这些值应该在 0 到 1 的范围内,但是在整个条目所在的位置>1(1000-10000) 都存在错误,并且无法准确地平均行。

顺便说一句:在突出显示所有具有值的单元格后,我尝试了先前发布的“基于颜色的清除单元格”宏>1,但这失败了。我猜是因为 RGB 查找表指令与我的 excel 版本不匹配?(根据颜色清除单元格内容?

4

2 回答 2

1

考虑到数据的大小,读入数组并遍历数组然后将数组写回工作表可能会更有效。

尝试这个:

Sub RemoveValues()
    Dim values(), arrayWidth As Integer, arrayHeight As Integer, i As Integer, j As Integer

    values = Range("A1:C5") // update as per your set up
    arrayWidth = UBound(values, 2)
    arrayHeight = UBound(values, 1)

    For j = 1 To arrayHeight
        For i = 1 To arrayWidth
            If values(j, i) > 1 Then
                values(j, i) = vbNullString
            End If
        Next i
    Next j

    Range("A1").Resize(arrayHeight, arrayWidth) = values
End Sub
于 2014-05-31T12:36:30.650 回答
1

选择您要处理的区域并尝试一下:

Sub ClearSome()
    Dim r As Range, rr As Range, rClear As Range
    Set rr = Intersect(Selection, ActiveSheet.UsedRange)
    Set rClear = Nothing
    For Each r In rr
        If IsNumeric(r) Then
            If r.Value > 1 Then
                If rClear Is Nothing Then
                    Set rClear = r
                Else
                    Set rClear = Union(rClear, r)
                End If
            End If
        End If
    Next r

    If Not rClear Is Nothing Then
        rClear.Clear
    End If
End Sub
于 2014-05-31T12:11:45.627 回答