返回列表 上一主題 發帖

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

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

可以麻煩達人們幫我想想辦法嗎?
1.        AA(工作表)開始後無法自動停止,我設定在ROW33後就停止儲存
結果,在ROW33是停了,但它就跑到ROW2、3,就在那裡繼續作動作。
這是我哪裡寫錯了嗎?
2.        BB(工作表)也是如此,這兩個工作表的錄製是一樣的。所以也是不會自動停下來。
3.        AA(工作表),一旦按下開始動作,若我再去BB(工作表)按下任意鍵,則a.明細(工作表)和b.明細(工作表)都不會動了。
4.        AA(工作表),若按下終止鍵,結果連BB(工作表)也跟著不會動了。

請問我是哪裡寫錯了,我一直找不出原因來。
期望各位達人大大們,能幫我看一下問題,謝謝。

數值儲存.rar (259.45 KB)

回復 1# ahsiek
無法正常看到程式...
1.JPG

TOP

RE: 儲存不會自動停止,該怎麼改?(檔案已更新)

本帖最後由 ahsiek 於 2013-8-5 01:11 編輯

回復 2# luhpro
原來是上傳的檔案不能開啟,因為我無法打開上傳後的檔案,所以不知道檔案沒有上傳好。
謝謝你的提醒。我重新再傳一次,希望這次能夠順利,且請各位達人們可以幫我想想辦法,謝謝。 數值記錄.rar (243.58 KB)

詢問的問題如下:
1.        AA(工作表)開始後無法自動停止,我設定在ROW33後就停止儲存
結果,在ROW33是停了,但它就跑到ROW2、3,就在那裡繼續作動作。
這是我哪裡寫錯了嗎?
2.        BB(工作表)也是如此,這兩個工作表的錄製是一樣的。所以也是不會自動停下來。
3.        AA(工作表),一旦按下開始動作,若我再去BB(工作表)按下任意鍵,則AA(工作表)和BB(工作表)都不會動了。
4.        AA(工作表),若按下終止鍵,結果連BB(工作表)也跟著不會動了。

請問我是哪裡寫錯了,我一直找不出原因來。
期望各位達人大大們,能幫我看一下問題,謝謝。

TOP

回復 3# ahsiek
檔案中沒有看到程式碼.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

b]回復 4# GBKEE
寫在模組裡。 數值記錄.rar (247.16 KB) [

TOP

回復 5# ahsiek
有請有2010版本幫忙看看了.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE
我將它轉成 2003 .xls
數值記錄.rar (158.64 KB)
順便麻煩您幫我問一下,最近網頁程式碼是否有異動到,
或者加了一些程式碼,使得使用 Firefox 的 User 無法執行
圖片、或附件上傳,以及 "炫炫"的功能鍵 ([Color] ~ [/Color])。
目前我是用 IE 回復的,謝謝您!

TOP

本帖最後由 stillfish00 於 2013-8-6 11:35 編輯

回復 3# ahsiek
詢問的問題如下:
1.        AA(工作表)開始後無法自動停止,我設定在ROW33後就停止儲存
結果,在ROW33是停了,但它就跑到ROW2、3,就在那裡繼續作動作。
這是我哪裡寫錯了嗎?
首先你用這取最後一行的行號
endCol = 工作表29.Cells(33, 1).End(xlUp).Row
End(xlUp)相當於按 END+向上鍵,當A1~A33都有值時,這行取到的是1

再來你用

   If ActiveCell.Row > 33 Then End       '限制總列數
    If ActiveCell.Column = 30 Then End       '中途中止   

但是程式中實際ActiveCell卻一直是固定同一格,當然不會終止
而且切換工作表ActiveCell也會變...........


2.        BB(工作表)也是如此,這兩個工作表的錄製是一樣的。所以也是不會自動停下來。
3.        AA(工作表),一旦按下開始動作,若我再去BB(工作表)按下任意鍵,則AA(工作表)和BB(工作表)都不會動了。
4.        AA(工作表),若按下終止鍵,結果連BB(工作表)也跟著不會動了。

基本上我會重寫如下,你可以參考看看:
  1. Private gbStop1 As Boolean
  2. Private gbStop2 As Boolean

  3. Sub ButtonStart1()  'AA工作表開始按鈕
  4.   gbStop1 = False
  5.   With ActiveSheet
  6.     .UsedRange.Offset(3).ClearContents
  7.     SetTimer1 .Name
  8.   End With
  9. End Sub
  10. Sub ButtonStop1()   'AA工作表停止按鈕
  11.   gbStop1 = True
  12. End Sub
  13. Sub ButtonStart2()  'BB工作表開始按鈕
  14.   gbStop2 = False
  15.   With ActiveSheet
  16.     .UsedRange.Offset(3).ClearContents
  17.     SetTimer2 .Name
  18.   End With
  19. End Sub
  20. Sub ButtonStop2()   'BB工作表停止按鈕
  21.   gbStop2 = True
  22. End Sub

  23. '將不同表的排程部分/限制行數/分離出來
  24. Sub SetTimer1(sSheetName As String)
  25.   Const MAX_ROW = 34
  26.   '未達限制行數且沒按停止鈕則排程1秒後再度執行
  27.   If mainFunc(sSheetName) < MAX_ROW And Not gbStop1 Then Application.OnTime Now + TimeValue("00:00:01"), "'SetTimer1 """ & sSheetName & """'"
  28. End Sub

  29. Sub SetTimer2(sSheetName As String)
  30.   Const MAX_ROW = 270
  31.   If mainFunc(sSheetName) < MAX_ROW And Not gbStop2 Then Application.OnTime Now + TimeValue("00:00:01"), "'SetTimer2 """ & sSheetName & """'"
  32. End Sub

  33. Function mainFunc(sSheetName As String) As Long
  34.   Dim i As Long
  35.   
  36.   With Sheets(sSheetName)
  37.     i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

  38.     '...記錄log
  39.     .Cells(i, "A") = Format(Time, "Hh:Mm:Ss")
  40.     .Cells(i, "J").Resize(, 8).Value = .Cells(3, "B").Resize(, 8).Value
  41.   End With
  42.   
  43.   mainFunc = i  '回傳當前列數
  44. End Function
複製代碼

TOP

回復 8# stillfish00

原來如此,因為我是看一個版本改寫的,沒想到錯誤一堆。
謝謝。能使用了,我會好好研究的。

不過我可以再問一個問題嗎?
SetTimer1和SetTimer2都是找Function mainFunc(sSheetName As String) As Long
可是因為BB工作表要複製和貼上的儲存格和AA工作表不一樣,找同一個Function會讓BB工作表的所儲存的內容會搞錯。
是不是能夠再寫一個  Function mainFunc(sSheetName As String) As Long 讓SetTimer2去找呢?
BB工作表要複製的是
.Cells(i, "A") = Format(Time, "Hh:Mm:Ss")
.Cells(i, "E").Resize(, 3).Value = .Cells(3, "B").Resize(, 3).Value

可以再麻煩你這個部份嗎?謝謝。

TOP

回復 9# ahsiek
那SetTimer2中改為  If mainFunc2(sSheetName)
另新增:
  1. Function mainFunc2(sSheetName As String) As Long
  2.   Dim i As Long
  3.   
  4.   With Sheets(sSheetName)
  5.     i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

  6.     '...記錄log
  7.     .Cells(i, "A") = Format(Time, "Hh:Mm:Ss")
  8.     .Cells(i, "E").Resize(, 3).Value = .Cells(3, "B").Resize(, 3).Value
  9.   End With
  10.   
  11.   mainFunc2 = i  '回傳當前列數
  12. End Function
複製代碼

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題