所以我在VBA中写了这个:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G9:G28")) Is Nothing Then
Application.EnableEvents = False
With Target
If IsNumeric(.Value) Then .Value = .Value / 100
End With
Application.EnableEvents = True
End If
End Sub
当我尝试删除" G" 0%的单元格保持锁定。我认为bc" .Value / 100"是我的代码说必须进入该单元格的0%。上面的代码假设将任何数字转换为百分比,但我想我写了它,当它假设为空白时,它显示一个" 0%"但我希望它是空白的。
答案 0 :(得分:2)
我会使用循环:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Not Intersect(Target, Range("G9:G28")) Is Nothing Then
Application.EnableEvents = False
For Each r In Intersect(Target, Range("G9:G28"))
If IsNumeric(r.Value) Then r.Value = r.Value / 100
Next r
Application.EnableEvents = True
End If
End Sub
此代码允许更改多个单元格。
答案 1 :(得分:0)
目标可以是几个细胞。 数组除以100毫无意义。
答案 2 :(得分:0)
在执行转换为百分比之前,只需测试相关单元格是否为空IsEmpty(Target.Value)
,如下所示:
If Not IsEmpty(.Value) And IsNumeric(.Value) Then .Value = .Value / 100