小编Paw*_*wel的帖子

如何在VBA中结束无限的"更改"循环

我有一个visual basic的问题.我想创建一个宏/函数,它将我输入的数字乘以3,并在同一个单元格中给出结果.我试过这样的事情:

Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$Q$21" Then
        Target.Value = Target.Value * 3
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 我得到的结果像"xE25",因为它不断增加.

我希望它在第一次迭代后停止,或者仅当我按下"输入"而不是单元格中的每个更改时才工作.
将结果放在不同的单元格中非常容易,但这不是我的观点.


-----编辑:
我编辑了"If"行到:
If (Target.Column = 5 Or Target.Column = 11 Or Target.Column = 17 Or Target.Column = 23) And (Target.Row >= 19 And Target.Row <= 24) And Target.Value <> "" Then
所以它适用于我需要的所有单元格.之后,最好的解决方案是@ Chrismas007给出的方式,因为它在尝试一次删除少数单元格中的数据时不会提示错误.

excel vba excel-vba

7
推荐指数
2
解决办法
5919
查看次数

标签 统计

excel ×1

excel-vba ×1

vba ×1