首页 > 解决方案 > 如何在VBA中用0替换数组中的黑色值

问题描述

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

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

For i = 1 To 147
    If IsEmpty(PercentComplete(i)) Then
        PercentComplete(i) = 0
    End If
Next i

标签: excelvba

解决方案


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

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

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

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

推荐阅读