返回列表 上一主題 發帖

價格紀錄的語法有寫錯嗎??

本帖最後由 GBKEE 於 2016-4-13 08:42 編輯

回復 114# c_c_lai
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Dim Rng As Range, cts As Long
  4.     If Time < #8:30:00 AM# Or Time > #1:31:00 PM# Then Exit Sub     '  非營業時間
  5.     On Error GoTo ER:
  6.     For cts = 4 To Columns.Count Step 4
  7.         Set Rng = Cells(2, cts)
  8.         With Cells(Rows.Count, cts).End(xlUp)
  9.             '  總量名稱所在的最底列往上到有資料的儲存格
  10.             If .Row = 2 Or .Row > 2 And .Value <> Rng.Value Then      '  (各股總量有變動)
  11.                 .Offset(1, 1).NumberFormatLocal = "hh:mm:ss"          '  設定儲存格格式 (時間)
  12.                 .Offset(1).Cells(1, -1).Resize(, 4) = Rng.Cells(, -1).Resize(, 4).Value
  13.             End If
  14.         End With
  15.     Next cts
  16. ER:
  17.     Stop
  18.     MsgBox "錯誤值  " & Err & VBLF &  " cts=" & cts & " - " & Rng.Address & "  最後的總量是工作表的最右欄 ->  .Resize(, 4).Value :超出工作表範圍"    Resume   
  19. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 114# c_c_lai
我要看看,但是我現在不在家,晚點告訴C大

TOP

回復 113# 藍天麗池
出現甚麼錯誤訊息?

TOP

回復 111# c_c_lai


   
上圖示測試結果,好像有錯誤的地方,再請C大看看

TOP

回復 111# c_c_lai

好的C大,我明天再告訴你結果

TOP

回復 110# 藍天麗池
明早再幫我測試一下這隻 "股票10C.xlsm" 的程式,
這隻是單獨只採用 Worksheet_Calculate() 方法,
並無應用 "名稱定義" 的方式。
說白點只單純直接    Worksheet_Calculate() 進行
資料寫入。 如有了測試結果再行告知我,謝謝!
股票10C.rar (21.87 KB)
P.S.  我想確認它的評效,如 OK 了,則會建議你採用。

TOP

回復 109# c_c_lai

我真的從兩位大大身上學到不少,感謝

TOP

回復 108# 藍天麗池
是的,在此等運用環境是應採行 『Worksheet_Calculate()』 搭上 『名稱定義』
才為上上的作業考量。我相信你會從這兩隻程式的處裡中學習到更多的。

TOP

本帖最後由 藍天麗池 於 2016-4-11 09:51 編輯

回復 107# c_c_lai

所以,C大你的意思是,手動變更可以啟動程式,但程式對於DDE的判定有問題所以才無法啟動程式嗎??(白話文)

TOP

回復 105# 藍天麗池
回復 85# GBKEE
由此可知 「DDE 資料匯入」是無法同時觸發 Worksheet_Change 的,
Worksheet_Change 只能對應一般正常性的欄位操作異動觸發;
這便是我為何要同時整理出 『股票10A.xlsm』、 『股票10B.xlsm』
兩種不同應用選擇的道理,以實際的 DDE 測試來驗定是要選擇以
何種內在函式來做正確的選擇工具。 所以實務證明『DDE 資料匯入作業』
此等運作環境是應採行 『Worksheet_Calculate()』 搭配 「名稱管理員」
內的『名稱定義』方式相輔相成,才是較實務的最佳選擇考量。
在此同時也感謝 GBKEE 大大的協力指導。

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題