假设:我的F4单元格已经套入了一个计算公式:=A4*C4. 但是某些时候我的F4单元格又会需要手动修改。为了防止意外不经意修改数据,我需要在修改数值后自动判定,(请注意,是修改数值后才进行判定),在F4单元格的内容现在不等于A4*C4的值时,就要弹出一个对话框,提醒现在修改的值可能不正确,是否需要继续修改。如果确定继续修改就点击确认,如果不继续修改就点击取消。
请问:用VBA怎么表达?
Excel 鼠标离开单元格触发事件
答案:3 悬赏:60 手机版
解决时间 2021-03-22 11:37
- 提问者网友:记得曾经
- 2021-03-21 15:41
最佳答案
- 五星知识达人网友:孤老序
- 2021-03-21 17:07
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s
If Target.Row = 4 And Target.Column = 6 Then
If Target.Value <> Cells(4, 1) * Cells(4, 3) Then
s = MsgBox("现在修改的值可能不正确,是否需要继续修改。如果确定继续修改就点击确认,如果不继续修改就点击取消。", vbAbortRetryIgnore)
If s = 3 Then Exit Sub
If s = 4 Then Target.Activate
If s = 5 Then Cells(4, 6) = "=A4*C4"
End If
End If
End Sub
Dim s
If Target.Row = 4 And Target.Column = 6 Then
If Target.Value <> Cells(4, 1) * Cells(4, 3) Then
s = MsgBox("现在修改的值可能不正确,是否需要继续修改。如果确定继续修改就点击确认,如果不继续修改就点击取消。", vbAbortRetryIgnore)
If s = 3 Then Exit Sub
If s = 4 Then Target.Activate
If s = 5 Then Cells(4, 6) = "=A4*C4"
End If
End If
End Sub
全部回答
- 1楼网友:动情书生
- 2021-03-21 19:24
Private Sub Worksheet_Change(ByVal Target As Range)
dim str ,a
str=[a4]*[c4]
if target.row=4 and target.column=6 then
if [f4]<>str then a=msgbox ("是否需要继续修改",vbyesyno)
if a=vbyes then
else
[f4]=str
end if
else
end if
end sub
- 2楼网友:佘樂
- 2021-03-21 17:53
excel工作表事件没有鼠标光标在单元格区域移动时触发事件。只有单元格激活或值更改时触发事件等。
工作表事件:
1 activate 激活工作表、图表工作表或嵌入式图表时发生事件
2 beforedoubleclick 双击工作表时发生事件
3 beforerightclick 右键单击工作表时发生事件
4 calculate 在对工作表进行重新计算之后发生此事件
5 change 当更改单元格值或外部链接引起单元格值更改时发生此事件
6 deactivate 图表或工作表停用时发生此事件
7 followhyperlink 当单击工作表任意超链接时发生此事件
8 pivottableupdate 数据透视表更新后发生事件
9 selectionchange 当工作表的选定区域改变时发生事件(即单元格激活)
工作表事件是最底层的事件,它只有9个事件。只有存放代码的工作表才可以触发工作表事件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯