Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1588|回复: 5

[已解决]求助一个简单的问题,单元格自动计算,老师帮我看看!!

[复制链接]
发表于 2013-7-5 12:26 | 显示全部楼层 |阅读模式
求助一个简单的问题,单元格自动计算,老师帮我看看!! 新建 Microsoft Office Excel 工作表.zip (8.21 KB, 下载次数: 17)
发表于 2013-7-5 12:38 | 显示全部楼层
我是小虾米,但是通过你的描述 好像变成一个死循环了,
除非你的结果放在另外一个表格
回复

使用道具 举报

 楼主| 发表于 2013-7-5 13:25 | 显示全部楼层
tianyanxing 发表于 2013-7-5 12:38
我是小虾米,但是通过你的描述 好像变成一个死循环了,
除非你的结果放在另外一个表格

是的,我做的也是,只要鼠标一点就会自动算
回复

使用道具 举报

发表于 2013-7-7 09:09 | 显示全部楼层
你的要求别人难看懂的。
回复

使用道具 举报

发表于 2013-7-7 12:40 | 显示全部楼层
在ThisWorkbook下,加以下代码(附件是03版测试文件)
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2. If Target.Address <> "$A$1" Then Exit Sub
  3. Application.EnableEvents = False
  4.     If IsNumeric(Target.Offset(, 3)) And Target.Offset(, 3) <> 0 Then
  5.         Target.Value = 10 * Target.Value / Target.Offset(, 3).Value
  6.     End If
  7. Application.EnableEvents = True
  8. End Sub
复制代码

1.rar

14.1 KB, 下载次数: 4

回复

使用道具 举报

发表于 2013-7-8 16:33 | 显示全部楼层    本楼为最佳答案   
在ThisWorkbook下,加以下代码(没有附件)
注:利用数组赋值给单元格区域不会触发CHANGE事件的特性,可以不用Application.EnableEvents = False
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2. If Target.Address <> ActiveSheet.[a1].Address Then Exit Sub
  3. Dim arr
  4. arr = [a1].Resize(, 2)
  5. arr(1, 1) = Target + ActiveSheet.[d1]
  6. ActiveSheet.[a1].Resize(, 2) = arr
  7. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 06:36 , Processed in 0.407894 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表