EXCEL:VBA:为什么自动生成的值无法触发Change()事件,而手动输入的值却可以触发Change()事件?

整个程序如下PublicSubWorksheet_Change(ByValTargetAsRange)IfTarget.Column=8ThenTarget.Offset... 整个程序如下Public Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 8 Then
Target.Offset(0, 2) = Format(Time, "yyyy-mm-dd hh:mm:ss")

End If
End Sub
只有手动输入到EXCEL单元格才会执行,自动生成的值为什么不能执行此程序???
不好意思分用完了。。。。
向懂的前辈求解!!
不胜感谢!!!!
展开
 我来答
百度网友eb22e2f
2011-05-08 · TA获得超过1437个赞
知道小有建树答主
回答量:1099
采纳率:100%
帮助的人:986万
展开全部
你自动生成的时候,肯定用到了Excel的“重算”功能,也就是工作表事件响应里的Calculate,所以你只要用这个就行了,而不要用Change!!
当然,这时候,就是相对于全工作表而言的,也就不会有Target这个变量,所以原来的代码就不能用了。

所以你还要再找找规律,到底是根据什么自动生成的呢?
如果只是引用单元格,那么,可以判断源单元格改变作为事件,如果是用RAND等函数生成的,那估计方法有限!
手机用户90151
2011-05-08 · TA获得超过391个赞
知道小有建树答主
回答量:734
采纳率:0%
帮助的人:153万
展开全部
你取值的时候 应该是用的赋值吧 改成copy 速度会慢 但格式是正确的 公式 类型 不会错

有啊 你可以录制宏 粘贴时有选择性粘贴 可以看宏代码了解想要什麽格式
在你取值时 可以赋值 然后 在赋予格式 如果你的数据不大的话 还是copy准确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太极健1969
2011-05-08 · TA获得超过9033个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3622万
展开全部
你第8列是公式引用的吧?
你选择的事件不对
应该用
Private Sub Worksheet_Calculate()
这里的代码要根据你的实际情况下来定。
End Sub
且你如果第8列都是公式的话,会出错,判断不了行,你最好是把你要的结果说明一下,对于选择用什么事件来处理会更好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
senghou39
2011-05-07 · TA获得超过156个赞
知道答主
回答量:471
采纳率:0%
帮助的人:0
展开全部
在excel中 我通过条件取得一些数据生成在另一个sheet中,值虽然取过来了,可以赋值 然后 在赋予格式 如果你的数据不大的话 还是copy准确 确定
追问
您有没有解决的方法,让自动生成到单元格的值触发这个程序吗?
不胜感谢!!!!!!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
toomee555
2024-04-08
知道答主
回答量:30
采纳率:100%
帮助的人:6546
展开全部
在 自动生成 值的事件中:加入如下语句:
Application.EnableEvents = true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式