gpt4 book ai didi

EXCEL VBA,更改单元格组和 Worksheet_Change 事件

转载 作者:行者123 更新时间:2023-12-04 20:18:13 24 4
gpt4 key购买 nike

我怀疑这并不是那么复杂,但我没有太多运气找到合适的谷歌条款......所以我来找专家!

所以我正在尝试实现 Worksheet_Change事件。这非常简单,我基本上只想做以下事情:

如果 C 列中的值发生变化,并且 D 中的值(在该行中)具有特定格式(NumberFormat = "$ 0.00"),则 E 列(在该行中)是这两个值的乘积。简单的。实际上,我只想要在 E 列中使用公式的 VBA 等效项。这是我正在使用的代码:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 3 And Target.Value <> "" Then
If Target.Offset(0, 1).NumberFormat = "$ 0.00" Then
Target.Offset(0, 2).Value = Target.Value * Target.Offset(0, 1).Value
End If
End If
end sub

当我尝试将多个值粘贴到 c 列的多行中时,我的问题出现了。即,我将一列数据(> 1 行)复制到 C 中,但出现类型不匹配错误。我将做出巨大的飞跃,因为它不能很好地处理这个问题,因为“目标”旨在成为单个单元格而不是一个组。我希望有一种简单的方法来处理这个问题,每次工作表上的单元格或其他东西发生变化时,不会涉及一些疯狂的循环。

提前致谢!

最佳答案

这是你正在尝试的吗?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCell As Range

On Error GoTo Whoa

Application.EnableEvents = False

If Not Intersect(Target, Columns(3)) Is Nothing Then
For Each aCell In Target
If aCell.Value <> "" And aCell.Offset(0, 1).NumberFormat = "$ 0.00" Then
aCell.Offset(0, 2).Value = aCell.Value * aCell.Offset(0, 1).Value
End If
Next
End If

Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub

您可能还想阅读 THIS ?

虽然您只想捕获 Col C 粘贴,但这里还有另一种情况,用户在多列中粘贴(其中一个是 Col C)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCell As Range

On Error GoTo Whoa

Application.EnableEvents = False


If Not Intersect(Target, Columns(3)) Is Nothing Then
If Not Target.Columns.Count > 1 Then
For Each aCell In Target
If aCell.Value <> "" And aCell.Offset(0, 1).NumberFormat = "$ 0.00" Then
aCell.Offset(0, 2).Value = aCell.Value * aCell.Offset(0, 1).Value
End If
Next
Else
MsgBox "Please paste in 1 Column"
End If
End If

Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub

关于EXCEL VBA,更改单元格组和 Worksheet_Change 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com