返回列表 上一主題 發帖

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

回復 30# c_c_lai


    C大我是用你的檔案,然後把第二列公式代入,測試結果沒有反應,我現在出門了,我回家後會將檔案上傳
測試結果是總量一直有變動,但程式都沒動作

TOP

回復 31# 藍天麗池
我順手寫了一隻測試程式,你將它放入至 Module1 內執行看是否有增加寫入列,
如果沒有這才叫靈異。
  1. Sub Test()
  2.     Dim cts As Integer
  3.    
  4.     For cts = 3 To 13 Step 2
  5.         Cells(2, cts) = Cells(2, cts) + 1
  6.     Next cts
  7. End Sub
複製代碼

TOP

本帖最後由 藍天麗池 於 2016-4-8 12:54 編輯

回復 32# c_c_lai


    C大謝謝,我回家後測試,但剛剛那個檔案為什麼會沒動作?
我全部的程式都沒有動,只把第二列的公式代入而已啊,怎麼會這樣?

上述增加的程式用意是測試有沒有增加列嗎?那跟原本的程式有關係嗎?

TOP

回復 33# 藍天麗池

TOP

回復 33# 藍天麗池

TOP

本帖最後由 藍天麗池 於 2016-4-8 22:26 編輯

回復 35# c_c_lai

股票0.rar (18.55 KB)
    C大,全部都沒錯唷,我是用你的檔案,所以完全沒改,我上傳你看看
打開之後沒有任何動作,甚至我手動去更改量,還會出現錯誤

TOP

回復 35# c_c_lai

股票10.rar (26.63 KB)
C大附件是最終版本,此版本不用複製時間,只要往下寫B2-E2、F2-I2...以此類推,我不知道如果這樣的話以下要如何更改

Private Sub Worksheet_Change(ByVal Target As Range)
    '  當 D2 欄位有異動時, 則去呼叫 RecordPrice 的方法 (Method)。
    If Target.Address = "$D$2" Or Target.Address = "$H$2" Or Target.Address = "$L$2" Or Target.Address = "$P$2" Or _
              Target.Address = "$T$2" Or Target.Address = "$X$2" Or Target.Address = "$AB$2" Or _
              Target.Address = "$AF$2" Or Target.Address = "$AJ$2" Or Target.Address = "$AN$2" Then
        Call RecordPrice(Target.Address)
    End If
End Sub

真的要打100個嗎??

TOP

回復 36# 藍天麗池
請先把你那端整個測試的程序結果詳細地描述一下,
包含券商軟體的啟動,以及是否在開盤期間運作?
並把執行後的畫面 (一分鐘前後的執行的畫面)
Hard Copy 出來上傳,我想瞭解這之前你的舊有程式
是如何執行OK的。因為程式結構未變,變動的僅僅是
邏輯判斷不同而已,在我端無論新舊均能正常運作,
為何你那端就不行?

TOP

本帖最後由 GBKEE 於 2016-4-10 14:28 編輯

回復 37# 藍天麗池
  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.     Dim xRng As Range, First_Aaddres  As String, xRng_Name As String
  4.     Application.Calculation = xlCalculationAutomatic
  5.     With Sheets("RTD")
  6.         Set xRng = .Rows(2).Cells.Find("TotalVolume", LookIn:=xlFormulas)
  7.         If Not xRng Is Nothing Then
  8.             First_Aaddres = xRng.Address
  9.             Do
  10.                  xRng_Name = Split(xRng.Formula, "'")(1)
  11.                  xRng_Name = "TotalVolume" & Split(xRng_Name, ".")(0)
  12.                 .Names.Add xRng_Name, xRng  ''名稱定義:所有總量的Dee公式的儲存格
  13.                 Set xRng = .Rows(2).Cells.FindNext(xRng)
  14.             Loop Until xRng.Address = First_Aaddres
  15.         End If
  16.     End With
  17. End Sub
複製代碼
重算事件試試看
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.         Dim Rng As Range, E As Variant
  4.         On Error Resume Next ' 檔案開啟時 DEE傳回錯誤值
  5.         Set Rng = UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
  6.         If Not Rng Is Nothing Then Exit Sub
  7.         On Error GoTo 0 '開盤不再處理程式碼的錯誤
  8.        If Time < #9:00:00 AM# Or Time > #1:31:00 PM# Then Exit Sub '非營業時間
  9.         For Each E In Me.Names
  10.             If E.Name Like "*TotalVolume*" Then   '總量的名稱
  11.                 If Range(E.Name) > 0 Then
  12.                     With Cells(Rows.Count, Range(E.Name).Column).End(xlUp)  ''總量名稱所在的最底列往上到有資料的儲存格
  13.                             If .Row = 2 Or .Row > 2 And .Value <> Range(E.Name).Value Then
  14.                                 .Offset(1).Cells(1, -2).Resize(, 4) = Range(E.Name).Cells(, -2).Resize(, 4).Value
  15.                             End If
  16.                     End With
  17.                 End If
  18.             End If
  19.         Next
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 38# c_c_lai

C大,這樣說好了,你一開始傳給我的股票0我用手動更改是可以執行的,所以我就把原本那份套入公式,之後就不能執行,我"完全"沒有變更,所以我在想之前那份可以執行是因為"純數字",後來帶入公式後無法執行,會不會是因為程式對公式的判斷出現問題??

因為原本用數字可以執行,帶入公式後就不行,所以我認為問題不會出現在券商的軟體,因為如果問題出現在軟體,那一開始的股票0就也會無法執行阿,但純數字版的卻可以執行,以上是我得看法,C大認為呢??

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題