返回列表 上一主題 發帖

儲存不會自動停止,該怎麼改?

回復 30# stillfish00

沒關係,謝謝你再三的幫助和回應。謝謝{:3_52:}

TOP

回復  ahsiek
這樣我就無能為力了。。。
stillfish00 發表於 2013-10-24 10:04


不好意思,我今天在測試時,發現CC工作表,儲存的作業停不下來。
我設定在CC工作表第40列時要停止,結果完全沒有停止且繼續儲存下去。
這個情況出現在如果我在其他工作表上時,就會這樣,直到我換到CC工作表後,才會停下來。
請問,是哪裡出了問題?我找了好久,一直沒有辦法找到錯誤點。
之前是設1小時,結果沒有問題,後來改為1秒,就停不下來了。 數值記錄.rar (345.83 KB)

TOP

回復 32# ahsiek
修改一下23樓  ButtonStop1 和 SetTimer1

Sub ButtonStop1(Optional sSheetName As String)   '工作表停止按鈕
  gbIsRunning1 = False
  
  On Error Resume Next
  '取消下次執行時間
  Application.OnTime gNextRunTime1, "'SetTimer1 """ & IIf(sSheetName <> "", sSheetName, ActiveSheet.Name) & """'", , False
  On Error GoTo 0
End Sub


Sub SetTimer1(sSheetName As String)
  Const MAX_ROW = 270
  
  gNextRunTime1 = Now + TimeValue("00:00:10")
  Application.OnTime gNextRunTime1, "'SetTimer1 """ & sSheetName & """'"
  
  If mainFunc(sSheetName) >= MAX_ROW Then ButtonStop1 sSheetName '執行並回傳row
End Sub

TOP

回復  ahsiek
修改一下23樓  ButtonStop1 和 SetTimer1

Sub ButtonStop1(Optional sSheetName As Stri ...
stillfish00 發表於 2013-10-25 15:03



非常謝謝你,已經可以使用了,也不會一直跑下去。會停到我要的列上,再次謝謝。
我可以問一下說,這是因為什麼呢?謝謝。

TOP

回復 34# ahsiek
就像紅字標的地方,修改之前使用ActiveSheet.Name
是當前工作表名稱,因為ButtonStop1被呼叫時可能在別的sheet
,改成指定的工作表而已

TOP

回復  ahsiek
就像紅字標的地方,修改之前使用ActiveSheet.Name
是當前工作表名稱,因為ButtonStop1被呼 ...
stillfish00 發表於 2013-10-25 16:05



    原來如此,我了解了。非常謝謝你的幫忙。

TOP

回復 28# stillfish00

stillfish00大大,我可以再請教你嗎?
因為知道Application.OnTime的限制,延遲1、2秒是沒有關係,但是最近發現到在我沒有注意時或是在使用其他工作表時,CC工作表會自己停止儲存動作。
出現過這樣的情況好幾次,等我發現時,已經少儲存很多數據。(不確定是按了什麼導致CC工作表停止動作)
是不是有方法可以說,讓CC工作表停止動作時,會跳出對話框提醒我CC工作表停止了。
是在 Function mainFunc3(sSheetNmae As string ) As Long 裡去加MsgBox嗎?
可以教我如何做嗎?謝謝。    數值記錄.rar (337.91 KB)

TOP

想請問說 因為我的儲存的列數會很多,每一次都要自己拉到最下方。
找到一個程式碼是讓最新資料顯示在可見視窗中。
在附加檔案裡的CC工作表,VBA module3裡。

Function mainFunc3(sSheetName As String) As Long   'CC工作表記錄
Dim i As Long

  With Sheets(sSheetName)

    i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    '...記錄log

    .Cells(i, "A") = Format(Time, "Hh:Mm:Ss")   'ROW A,記錄時間

    .Cells(i, "E").Resize(, 3).Value = .Cells(3, "B").Resize(, 3).Value  'B3-D3複製到E4-G4

  End With

  mainFunc3 = i  '回傳當前列數
  
    If ActiveSheet.Name = sSheetName And iRow > 25 Then
      ActiveWindow.ScrollRow = iRow - 15     '讓最新資料保持在可見視窗中
   End If

End Function

請問我是哪裡寫錯了,沒有辦法讓列數保持在可見視窗中。
可以麻煩給我一點指教嗎?非常謝謝。

TOP

回復 38# ahsiek


    數值記錄.rar (388.59 KB) 附上檔案

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題