如何在VBA中用0替换数组中的黑色值

Ala*_*nes 0 excel vba

我正在尝试使用 VBA 读取一系列单元格并将它们存储在一个数组中,然后我要将数组中的所有空白单元格更改为 0。但是,我不断收到越界错误这就是我到目前为止。

PercentComplete = Range("E3:E149").Value

For i = 1 To 147
    If IsEmpty(PercentComplete(i)) Then
        PercentComplete(i) = 0
    End If
Next i
Run Code Online (Sandbox Code Playgroud)

Fan*_*uru 5

请试试这个方法。它不涉及任何迭代:

Dim sh As Worksheet, rngBlk As Range
 
 Set sh = ActiveSheet 'use here your necessary sheet
 If WorksheetFunction.CountA(sh.Range("A1:I25")) < sh.Range("A1:I25").cells.count Then
     Set rngBlk = sh.Range("E3:E149").SpecialCells(xlCellTypeBlanks)
     rngBlk.Value = 0
 Else
    MsgBox "No empty cells in the range to be processed..."
 End If
Run Code Online (Sandbox Code Playgroud)

或者,在活动工作表上工作,以较短的变体执行所有操作:

If WorksheetFunction.CountA(sh.Range("E3:E149")) < sh.Range("E3:E149").cells.count
    Range("E3:E149").SpecialCells(xlCellTypeBlanks).Value = 0
End If
Run Code Online (Sandbox Code Playgroud)

  • 最好考虑范围内没有空白单元格的可能性 (2认同)