Excel精英培训网

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

[已解决]真心求教关于运行

[复制链接]
发表于 2013-5-16 11:29 | 显示全部楼层 |阅读模式
本帖最后由 fcyxiaoyuer 于 2013-5-16 13:00 编辑

这个程序我在我同事电脑上2003版运行非常块 眨眼就好。。
但是为什么在我自己电脑上面(新买的 装的2007版) 卡的要死,基本无法运行

重新运算后,为什么VBA运算那么慢,一个个单元格运算过来。(新手 不太懂)
最佳答案
2013-5-16 22:12
因为你的SHEET3的N多公式引用了SHEET1里的数据。
所以你在修改SHEET1的单元格时,会引发SHEET3里的自动计算。

2013年4月份第1周(1).zip

36.75 KB, 下载次数: 10

发表于 2013-5-16 12:02 | 显示全部楼层
我也不太懂,公共参考。
  1. Private Sub CommandButton1_Click()
  2. Application.ScreenUpdating = False
  3. Dim rg As Range
  4. For Each rg In Range("D3:j82")
  5. If Application.CountIf(Range("D3:j82"), "休息") = 0 And Application.CountIf(Range("D3:j82"), "待派") = 0 Then GoTo 100:
  6. If rg = "休息" Or rg = "待派" Then
  7. rg = "休"
  8. ElseIf rg = "" Then
  9. rg = ""
  10. Else: rg = "√"
  11. End If
  12. Next rg
  13. 100:
  14. Application.ScreenUpdating = True
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-5-16 12:05 | 显示全部楼层
ligh1298 发表于 2013-5-16 12:02
我也不太懂,公共参考。

看不太懂额。。跟我2007上面运行非常慢有什么联系么。。
回复

使用道具 举报

发表于 2013-5-16 22:10 | 显示全部楼层
改成手动计算。
回复

使用道具 举报

发表于 2013-5-16 22:12 | 显示全部楼层    本楼为最佳答案   
因为你的SHEET3的N多公式引用了SHEET1里的数据。
所以你在修改SHEET1的单元格时,会引发SHEET3里的自动计算。

回复

使用道具 举报

发表于 2013-5-16 22:13 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2.     Dim rg As Range
  3.     Application.Calculation = xlCalculationManual
  4.     Application.ScreenUpdating = False

  5.     For Each rg In Range("D3:j82")
  6.         If rg = "休息" Or rg = "待派" Then
  7.             rg = "休"
  8.         ElseIf rg = "" Then
  9.             rg = ""
  10.         Else: rg = "√"
  11.         End If
  12.     Next rg
  13.     Application.ScreenUpdating = True
  14.     MsgBox "ok"
  15.     Application.Calculation = xlCalculationAutomatic

  16. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 11:13 , Processed in 0.320821 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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