如果像該問題時,你只在排除#REF!
錯誤,這是正確的校驗感興趣:
For Each akt_range In Range("C3:J65")
If CStr(akt_range.Value2) <> CStr(CVErr(xlErrRef)) Then
akt_range.Value = akt_range.Value2
End If
Next
技術上,上述將在返回#REF!
的錯誤代碼字符串的公式的特殊情況下失敗,例如="Error 2023"
。該絕對防彈檢查是這樣的:
For Each akt_range In Range("C3:J65")
If Not IsError(akt_range.Value2) Or CStr(akt_range.Value2) <> CStr(CVErr(xlErrRef)) Then
akt_range.Value = akt_range.Value2
End If
Next
如果要排除所有錯誤,一個更好的解決辦法是使用.SpecialCells()
循環之前,以消除該範圍的錯誤:
For Each akt_range In Range("C3:J65").SpecialCells(xlCellTypeFormulas, xlLogical + xlNumbers + xlTextValues)
akt_range.Value = akt_range.Value2
Next
'Selection.Areas'列舉區域。區域的「價值」是一個二維數組。顯然你想'Selection.Cells'。然後再次,[你不需要'選擇'](https://stackoverflow.com/q/10714251/11683)。 – GSerg