运行以下代码片段时出现溢出警告:
For Each Row In Rng.Rows
For Each cell In Row.Cells
cell.Activate
ActiveCell.Select
If IsNumeric(ActiveCell) Then
ActiveCell.Value = CInt(ActiveCell.Value)
End If
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="=1"
Selection.FormatConditions
(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior.ColorIndex = 20
End With
Selection.FormatConditions(1).StopIfTrue = False
Next cell
Next Row
cell和Row都声明为Variant。
代码是由其他人编写的,警告不会出现在我的系统中。该错误正在其他一些系统中出现。
如果代码中有错误或任何其他方式停止收到此消息,请告诉我。
答案 0 :(得分:2)
此行发生错误:
ActiveCell.Value = CInt(ActiveCell.Value)
CInt
只能处理-32,768到32,767之间的值。
检查您的数据类型here,找出哪个更符合您的要求
答案 1 :(得分:0)
试试这个。避免使用Select
语句。它可能会导致很多错误(我怀疑这会导致你的错误)。此外,您不需要两个循环来实现此目的
For Each cell In rng.cells
If IsNumeric(cell) Then cell.Value = CLng(cell.Value)
With cell
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=1"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ColorIndex = 20
.FormatConditions(1).StopIfTrue = False
End With
Next cell