【发布时间】:2012-06-14 02:13:41
【问题描述】:
我在Worksheet_Change有一个代码
如果第 9 列被更新,则第 8 列将通过乘以第 9 列和第 11 列自动填充。
但是当用户在列中粘贴值时,更改事件无法正常工作。只有 Col 8 中的第一个单元格被更新。
我该如何克服呢?
【问题讨论】:
我在Worksheet_Change有一个代码
如果第 9 列被更新,则第 8 列将通过乘以第 9 列和第 11 列自动填充。
但是当用户在列中粘贴值时,更改事件无法正常工作。只有 Col 8 中的第一个单元格被更新。
我该如何克服呢?
【问题讨论】:
试试这个
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Application.EnableEvents = False
If Target.Columns.Count > 1 Then GoTo LetsContinue
If Not Intersect(Target, Columns(9)) Is Nothing Then
Dim aCell As Range
For Each aCell In Target
aCell.Offset(, -1).Value = aCell.Value * aCell.Offset(, 2)
Next
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
【讨论】:
aCell.Offset(, 1),对 Col 12 使用 aCell.Offset(, 3),然后简单地更新你正在做的任何计算 :)