返回列表 上一主題 發帖

這種依時間運算的巨集要如何寫??

這種依時間運算的巨集要如何寫??

請問版上大大,如果我要寫一個巨集功能如下,要如何寫
A1=5
B1=3
C1=4

A2=7
B2=6
C2=9

如果我要在8:46分執行運算E1=SUM(A1:C1),8:47分執行E2=SUM(A2:C2),依此類推一直執行到13:45分,且執行完後直接寫入值,而不是公式,請問版上大大這個巨集要如何寫呢??

P.S 我之前有試過直接將公式寫在儲存格,但發現資料量大的話會拖慢執行數度,所以想跟版上大大請教一下用巨集要如何寫
上面的示範例,我實際執行的資料量比較大

回復 33# GBKEE

G大不好意思又來請教你了
    http://forum.twbts.com/viewthread.php?tid=13250&extra=

TOP

回復 33# GBKEE


    感謝G大

TOP

回復 32# 藍天麗池
試試看
  1. Sub RecordPrice()
  2.     Application.ScreenUpdating = False
  3.     Calculate
  4.     Application.ScreenUpdating = True
  5. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 29# GBKEE
G大,情況就大概像影片中的樣子,會一直閃個不停
http://youtu.be/HkWukKMe2_A

TOP

本帖最後由 藍天麗池 於 2015-1-6 10:36 編輯

回復 29# GBKEE

G大跟你請教一下,我有一個程式因為excel裡面的資料比較多,需要一直更新,但畫面會一直閃爍,我在網路上找了一下,說是要貼上下面的兩段程式碼,但我不確定貼在哪哩,請G大跟我說一下,感謝

Application.ScreenUpdating = False
Application.ScreenUpdating = True

我有幾段程式貼出來給G大看,在麻煩您跟我說一下,感謝

以下是sheet4
  1. Private Sub CommandButton1_Click()
  2.     Dim pTick As TTick
  3.     Dim I As Integer
  4.     I = 1
  5.     Sheet4.Range("g1:g2").Clear
  6.     Sheet4.Range("a3:f3").Clear
  7.     Sheet4.Range("a5:k90000").Clear
  8.       While Sheet4.Cells(2, I) <> ""
  9.         Status = SKQuoteLib_RequestTicks(I, Sheet4.Cells(2, I))
  10.         I = I + 1
  11.     Wend
  12. End Sub
  13. Private Sub Worksheet_Change(ByVal Target As Range)
  14.     Application.EnableEvents = False
  15.     If Not Intersect(Target, [B5:B90000]) Is Nothing Then
  16.         Range("H" & Target.Row).Formula = "=INT(RC[-6]/100)"
  17.       
  18.      ElseIf Not Intersect(Target, [F5:F90000]) Is Nothing Then
  19.         Range("I" & Target.Row).Formula = "=IF(RC[-6]=-9999.99,R[-3]C[-4],IF(RC[-4]=RC[-6],-RC[-3],IF(RC[-4]=RC[-6]-1,-RC[-3],IF(RC[-4]=RC[-6]-2,-RC[-3],IF(RC[-4]=RC[-6]-3,-RC[-3],IF(RC[-4]=RC[-6]-4,-RC[-3],IF(RC[-4]=RC[-6]-5,-RC[-3],IF(RC[-4]=RC[-5],RC[-3],IF(RC[-4]=RC[-5]+1,RC[-3],IF(RC[-4]=RC[-5]+2,RC[-3],IF(RC[-4]=RC[-5]+3,RC[-3],IF(RC[-4]=RC[-5]+4,RC[-3],IF(RC[-4]=RC[-5]+5,RC[-3],RC[-3])))))))))))))"
  20.      ElseIf Not Intersect(Target, [C5:C90000]) Is Nothing Then
  21.         Range("J" & Target.Row).Formula = "=IF(RC[-1]>0,RC[-4],R1C)"
  22.      ElseIf Not Intersect(Target, [D5:D90000]) Is Nothing Then
  23.         Range("K" & Target.Row).Formula = "=IF(RC[-2]<0,RC[-5],R1C[-1])"
  24.    End If
  25.    Application.EnableEvents = True
  26.         

  27. End Sub
複製代碼
以下是thisworkbook
  1. Option Explicit

  2. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  3. Application.RTD.ThrottleInterval = 2000
  4. Application.Calculation = xlCalculationAutomatic
  5. End Sub

  6. Private Sub Workbook_Open()
  7. Const StartTime As Date = "08:45:00"

  8. Application.RTD.ThrottleInterval = 0
  9. Application.Calculation = xlCalculationManual

  10. Application.OnTime StartTime, "mySchedule"
  11. End Sub
複製代碼
以下是模組2
  1. Option Explicit
  2. Dim NextTime As Date

  3. Sub RecordPrice()
  4. Calculate
  5. End Sub

  6. Sub mySchedule()
  7. Const StopTime As Date = "14:30:00"

  8. NextTime = Now + TimeValue("00:00:02")
  9. If TimeValue(NextTime) <= StopTime Then
  10.    Application.OnTime EarliestTime:=TimeValue(NextTime), Procedure:="mySchedule"
  11. End If
  12. Call RecordPrice
  13. End Sub

  14. Sub Macro1()
  15. Sheet4.Range("g1:g2").Clear
  16. Sheet4.Range("a3:f3").Clear
  17. Sheet4.Range("a5:i90000").Clear

  18. End Sub
複製代碼
原則上只用到這幾個,在請G大跟我說上面那兩行加在哪裡可以讓畫面不再閃爍

TOP

回復 29# GBKEE

G大是下面那樣,謝謝你

TOP

本帖最後由 GBKEE 於 2014-12-25 08:48 編輯

回復 28# 藍天麗池

是這樣嗎?
  1. Sub RecordPrice()
  2.     Dim WR As Long, R As Long
  3.     Dim I As Long
  4.     WR = Range("A1").End(xlDown).Row + 1
  5.     [A2] = TimeValue(Now)
  6.     For I = 1 To 24
  7.         Cells(WR, I) = Cells(2, I)
  8.     Next 'I
  9.     With ActiveWindow
  10.         If Intersect(Cells(WR, "A"), .VisibleRange) Is Nothing Then
  11.            Cells(WR, "A").Select
  12.         End If
  13.         .SmallScroll .VisibleRange.Cells.End(xlDown).Row - .VisibleRange.Cells(1).Row
  14.     End With
  15. End Sub
複製代碼
還是這樣?
  1. With ActiveWindow
  2.         If Intersect(Cells(WR, "A"), .VisibleRange) Is Nothing Then .SmallScroll 1
  3.     End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 26# GBKEE

G大,之前的程式測試過後可以了,但是另一個請教一下G大如果我在附件這個程式要加入每秒向下滾動一列要怎麼加呢?? 分析.rar (88.77 KB)
其他的我還可以試著寫寫看,但這種的就...,還望G大幫忙一下,不好意思G大總是麻煩你

TOP

回復 26# GBKEE

G大感謝你等等來試試看

TOP

        靜思自在 : 口說好話、心想好意、身行好事。
返回列表 上一主題