返回列表 上一主題 發帖

[發問] DDE資料紀錄問題

回復 36# npapower
這主題就有
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 35# slip T
執行多檔案時,該這樣的.
  1. Sub GetDDE()
  2.     Dim T As Date, Sh(1 To 2)
  3.     T = Now  '取得現在時間
  4.     Set Sh(1) = ThisWorkbook.Sheets(1)
  5.     Set Sh(2) = ThisWorkbook.Sheets(2)
  6.     If Not IsError(Sh(1).[B2]) Then Sh(2).[A65536].End(xlUp).Offset(1).Resize(, 7) = Sh(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
  7.     Application.OnTime T + TimeValue("00:00:30"), "GetDDE"  '這是以2秒測試,間隔5分鐘改成TimeValue("00:05:00"),
  8. End Sub
複製代碼
T檔案
  1. Sub duplicate_Click()
  2.     Dim nextRows As Single
  3.     With ThisWorkbook.Sheets("Sheet1")
  4.         nextRows = .Range("A" & Rows.Count).End(xlUp).Row + 1
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

請教各位版大先進~DDE

各位版大大家好:
小弟想請教一下我個人使用的是永豐報價軟體,想透過DDE的方式把個股的成交價格按照15秒左右的時間記錄下來到EXCEL,
然後畫成走勢圖。想跟大大們請教我該如何做~?萬分感謝。
每個人的存在都在連結遙遠的過去與未來。

TOP

回復 34# GBKEE
GBKEE 大大
我同時開兩個檔案  "Book8" & "T"
如果畫面留在"Book8"執行時,"Book8"檔案會正常運作

可是如果我切換到 "T"檔案執行
再點回 "Book8"檔執行的話

那在我"T"檔案執行的時間
這段時間"Book8"檔案會出現這樣
謝謝您的幫忙.......
slip

TOP

回復 33# slip
  1. 'With Sheets(2).[A65536].End(xlUp).Offset(1)
  2.                'Sheets(2) 物件: 沒指明父層為作用中活頁簿,的第2個工作表物件
  3.         '改成
  4.         With ThisWorkbook.Sheets(2).[A65536].End(xlUp).Offset(1)
  5.             'ThisWorkbook           物件: 代表目前執行巨集程式碼所在的活頁簿
  6.           或   
  7.         With Workbooks("Book8.xls").Sheets(2).[A65536].End(xlUp).Offset(1)
  8.             'Workbooks("Book8.xls") 物件:指定名稱的活頁簿        
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 31# GBKEE
"GBKEE"大大  你好;

原檔案"book8" Book8.rar (15.62 KB)
發生一個問題請幫忙
我會同時又開一個excel檔"T"(此excel也是在抓DDE) T.rar (29.95 KB)
就會出現以下訊息



感恩
slip

TOP

回復 31# GBKEE
真的12萬分感謝"GBKEE"大大

我今天執行起來
完全是我要
並且大大又多送我一個功能
圖表會跟著資料區間自動往下移動
實在太感謝大大了
slip

TOP

回復 30# slip
請自行依照如下修改
  1. With .Axes(xlValue)             'Y(主)座標軸
  2.                     .MinimumScale = Application.Min(.Parent.Parent.Parent.[I:I])                        '最小值
  3.                     .MaximumScale = Application.Max(.Parent.Parent.Parent.[I:I])                        '最大值
  4.                     .MajorUnitIsAuto = True      '主要刻度間距=自動設定
  5.                     .MinorUnitIsAuto = True      '次要刻度間距=自動設定
  6.                     .Crosses = xlAutomatic       '座標軸與其他座標軸交叉的點=自動設定
  7.                     .ScaleType = xlLinear        '數值座標軸的刻度類型=xlLinear
  8.                 End With
  9.                 With .Axes(xlValue, xlSecondary) 'Y(副)座標軸
  10.                     .MinimumScale = Application.Min(.Parent.Parent.Parent.[J:J])                        '最小值
  11.                     .MaximumScale = Application.Max(.Parent.Parent.Parent.[J:J])                        '最大值
  12.                     .MaximumScaleIsAuto = True
  13.                     .MajorUnitIsAuto = True
  14.                     .MinorUnitIsAuto = True
  15.                     .Crosses = xlAutomatic
  16.                     .ScaleType = xlLinear
  17.                 End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 29# GBKEE
謝謝"GBKEE 大大"
今天試過的狀況如Book6.rar Book6.rar (13.66 KB)

說明如下
左邊Y軸 = I欄位 = 數列2  的最大,最小
右邊Y軸 = J欄位 = 數列1  的最大,最小
附圖為今日用手動做出來的圖(最大,最小範圍)
請"GBKEE " 大大再幫我修改
感謝+感恩
slip

TOP

回復 28# slip
試試看
  1. Sub GetDDE()
  2.     Dim T As Date, xMax As Integer, xMin As Integer, i As Integer
  3.     T = Now  '取得現在時間
  4.     If Not IsError(Sheets(1).[B2]) Then
  5.         Application.ScreenUpdating = False
  6.         With Sheets(2).[A65536].End(xlUp).Offset(1)                     '物件
  7.             i = .Row                                                    'Row(物件屬性):列號
  8.             .Resize(, 7) = Sheets(1).[A2:G2].Value                      '工作表1的資料DDE連結成功寫入工作表2
  9.             .Range("H1") = .Range("D1") - .Range("C1")                  'H欗的公式=>D欗-C欗
  10.             .Range("I1") = .Range("H1") - .Range("H1").Offset(-1)       'I413=H413-H412......數列2
  11.             .Range("J1") = .Range("E1")                                 'J欗的公式=E欗
  12.             xMax = Application.Max(.Parent.[i:j])                       '最大值
  13.             xMin = Application.Min(.Parent.[i:j])                       '最小值
  14.             '**  .Parent.ChartObjects(1): 物件 (工作表的第1個圖表)  *****
  15.             With .Parent.ChartObjects(1).Chart
  16.                 .SeriesCollection(1).Values = .Parent.Parent.Range("J2:J" & i)              '指定數列資料的範圍
  17.                 .SeriesCollection(1).ChartType = 52                                         '指定數列圖表類型
  18.                 .SeriesCollection(2).Values = .Parent.Parent.Range("i2:i" & i)
  19.                 .SeriesCollection(2).ChartType = 65
  20.                 If .SeriesCollection(2).AxisGroup <> xlSecondary Then .SeriesCollection(2).AxisGroup = xlSecondary '數列不在第2Y座標軸(副座標): 數列指定到第2Y座標軸(副座標)
  21.                                                                                             '.AxisGroup = 2 ->  副座標
  22.                 .Parent.Top = .Parent.Parent.Range("L" & IIf(i <= 39, 1, i - 38)).Top       '指定圖表頂端的位置
  23.                 With .Axes(xlValue)             'Y座標軸
  24.                     .MinimumScale = xMin
  25.                     .MaximumScale = xMax
  26.                     .MajorUnitIsAuto = True      '主要刻度間距=自動設定
  27.                     .MinorUnitIsAuto = True      '次要刻度間距=自動設定
  28.                     .Crosses = xlAutomatic       '座標軸與其他座標軸交叉的點=自動設定
  29.                     .ScaleType = xlLinear        '數值座標軸的刻度類型=xlLinear
  30.                 End With
  31.                 With .Axes(xlValue, xlSecondary) '第2Y座標軸(副座標)
  32.                     .MinimumScale = xMin
  33.                     .MaximumScale = xMax
  34.                     .MaximumScaleIsAuto = True
  35.                     .MajorUnitIsAuto = True
  36.                     .MinorUnitIsAuto = True
  37.                     .Crosses = xlAutomatic
  38.                     .ScaleType = xlLinear
  39.                 End With
  40.             End With
  41.         End With
  42.         Application.ScreenUpdating = True
  43.     End If
  44.    Application.OnTime T + TimeValue("00:01:00"), "GetDDE"               '間隔5分鐘改成TimeValue("00:05:00"),
  45. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題