返回列表 上一主題 發帖

請教excel先進.

請教excel先進.

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

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



    Application.ScreenUpdate= False

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

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


mark大:[物件不支援此屬性或方法]呢!

TOP

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



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

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

      貼個圖上來瞧瞧唄

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

  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版不行
這裏程式執行順暢,沒有問題
我在另一工作表看分析,但畫面會一直閃動,
就想求教有沒有方法使程式安靜的在背景執行,不影響畫面.

TOP

本帖最後由 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做啥ˋˊ

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

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

感謝您費心

TOP

        靜思自在 : 看別人不順眼,是自己修養不夠。
返回列表 上一主題