Board logo

標題: 請教excel先進. [打印本頁]

作者: seer_et    時間: 2013-4-15 10:33     標題: 請教excel先進.

我的工作簿有5個worksheet,其中一個接收股市DDE的資料,
另有一個作為K線分時的高低點紀錄,這個計算我使用Worksheet_Calculate()事件;然後
我在另一個工作表看分析,工作可以進行順利,但有一個困擾是畫面不停的閃爍.如果將
Calculate程式行中斷就不會閃了,我在程式前端使用Application.ScreenUpdating = False,
沒有效果,依然會閃爍跳動.
請教excel先進:
可不可能做到讓程式就在背景執行,不影響畫面呢?
作者: mark15jill    時間: 2013-4-16 09:54

我的工作簿有5個worksheet,其中一個接收股市DDE的資料,
另有一個作為K線分時的高低點紀錄,這個計算我使用W ...
seer_et 發表於 2013-4-15 10:33



    Application.ScreenUpdate= False
作者: seer_et    時間: 2013-4-16 11:18

Application.ScreenUpdate= False
mark15jill 發表於 2013-4-16 09:54


mark大:[物件不支援此屬性或方法]呢!
作者: mark15jill    時間: 2013-4-16 23:07

mark大:[物件不支援此屬性或方法]呢!
seer_et 發表於 2013-4-16 11:18



    我支援此屬性和方法阿= ="(誤...

     你那段程式碼放哪邊....
     
     不會放在最前面吧~?

      貼個圖上來瞧瞧唄
作者: seer_et    時間: 2013-4-17 01:02

  1. Private Sub Worksheet_Calculate()

  2. If Time < TimeValue("8:45:00") Or Time > TimeValue("13:45:00") Then Exit Sub
  3. Application.ScreenUpdating = False
  4. On Error Resume Next
  5. If Application.WorksheetFunction.IsNumber(Cells(201, 5)) Then    '期貨資料更新
  6. If Cells(201, 2) = 0 Then Cells(201, 2) = Cells(2, 38)
  7. If Cells(201, 3) = 0 Then Cells(201, 3) = Cells(201, 5)
  8. '
  9. '
  10. '
  11. End If
  12. End Sub
複製代碼
mark大2007的版是"Application.ScreenUpdate= False"嗎?
我2003版不行
這�媯{式執行順暢,沒有問題
我在另一工作表看分析,但畫面會一直閃動,
就想求教有沒有方法使程式安靜的在背景執行,不影響畫面.
作者: mark15jill    時間: 2013-4-17 10:18

本帖最後由 mark15jill 於 2013-4-17 10:21 編輯
mark大2007的版是"Application.ScreenUpdate= False"嗎?
我2003版不行
這�媯{式執行順暢,沒有問題
我在另 ...
seer_et 發表於 2013-4-17 01:02
  1. Private Sub Worksheet_Calculate()

  2. Application.ScreenUpdating = False          '< ====  要放這邊~~~  關閉螢幕更新~~ K1

  3. If Time < TimeValue("8:45:00") Or Time > TimeValue("13:45:00") Then Exit Sub



  4. On Error Resume Next

  5. If Application.WorksheetFunction.IsNumber(Cells(201, 5)) Then    '期貨資料更新

  6. If Cells(201, 2) = 0 Then Cells(201, 2) = Cells(2, 38)

  7. If Cells(201, 3) = 0 Then Cells(201, 3) = Cells(201, 5)

  8. '

  9. '

  10. '

  11. End If

  12. Application.ScreenUpdating = True          '< ====  要放這邊~~~  開啟螢幕更新~~K2

  13. End Sub
複製代碼
放K1和K2 的作用 是等到程式跑完最新結果才會顯示
而不會中途一直更新

K1 和 K2 為搭配的...
如果只放K1 不放K2.. 那有可能你跑完後,最新結果不會顯示
如果只放K2 不放K1.. 那還放K2做啥ˋˊ
作者: seer_et    時間: 2013-4-17 13:11

照您說的做了,沒有改善,還是會閃
我看大概只能將就著了...

感謝您費心




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)