返回列表 上一主題 發帖

[發問] DDE資料紀錄問題

回復 20# GBKEE
感謝版主"GBKEE"
已經可以跑
可是另外想請問
為何我證券商軟體沒有開啟
但,我excel開啟後,excel自動運做ㄝ
這是正常的嗎?

感恩囉
slip

TOP

回復 21# slip
這是正常的,可再參考一下17#的程式碼.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 21# slip

TOP

回復 22# GBKEE
謝謝"GBKEE &  c_c_lai"兩位大大回覆
目前仍沿用運作中

另外有新問題想請教如下
Sheet2
因還沒出現新數字,都會是0
數列1就會拉出很長的連線(如圖橘色框框部份)
請問如何可以讓這條條線不見呢?
謝謝

sheet2.png (32.16 KB)

sheet2.png

Book3.rar (20.31 KB)

slip

TOP

回復 24# slip
先刪除H:I欗的公式
  1. Sub GetDDE()
  2.     Dim T As Date
  3.     T = Now  '取得現在時間
  4.     If Not IsError(Sheets(1).[B2]) Then
  5.         With Sheets(2).[A65536].End(xlUp).Offset(1)
  6.             .Resize(, 7) = Sheets(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
  7.             .Range("H1") = .Range("D1") - .Range("C1")             'H欗的公式=>D欗-C欗
  8.             .Range("I1") = .Range("E1")                                  'I欗的公式=E欗
  9.         End With
  10.     End If
  11.     Application.OnTime T + TimeValue("00:01:00"), "GetDDE"  '這是以2秒測試,間隔5分鐘改成TimeValue("00:05:00"),
  12. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 25# GBKEE
謝謝"GBKEE大大"幫忙
需求有小小改變,請幫忙如下

H=D-C
I413=H413-H412......數列2
J欄位...............數列1
圖表呈現是 I列與J列

可否幫忙在圖表呈現時
圖表可自動修正
數列1與數列2的最大值與最小值的空間(目前我都用手修改)
謝謝幫忙
    Book3.rar (19.24 KB)
slip

TOP

回復 26# slip
  1. Sub GetDDE()
  2.     Dim T As Date, xMax As Integer, xMin As Integer
  3.     T = Now  '取得現在時間
  4.     If Not IsError(Sheets(1).[B2]) Then
  5.         With Sheets(2).[A65536].End(xlUp).Offset(1)
  6.             .Resize(, 7) = Sheets(1).[A2:G2].Value                      '工作表1的資料DDE連結成功寫入工作表2
  7.             .Range("H1") = .Range("D1") - .Range("C1")                  'H欗的公式=>D欗-C欗
  8.             .Range("I1") = .Range("H1") - .Range("H1").Offset(-1)       'I413=H413-H412......數列2
  9.             .Range("J1") = .Range("E1")                                 'J欗的公式=E欗
  10.             xMax = Application.Max(.Parent.[i:j])                       '最大值
  11.             xMin = Application.Min(.Parent.[i:j])                       '最小值
  12.             
  13.             '**  .Parent.ChartObjects(1): 物件 (工作表的第1個圖表)  *****
  14.             With .Parent.ChartObjects(1).Chart.Axes(xlValue)
  15.                 .MinimumScale = xMin
  16.                 .MaximumScale = xMax
  17.                 .ScaleType = xlLinear                                    '數值座標軸的刻度類型
  18.             End With
  19.         End With
  20.     End If
  21.     Application.OnTime T + TimeValue("00:01:00"), "GetDDE"               '間隔5分鐘改成TimeValue("00:05:00"),
  22. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 27# GBKEE
謝謝大大

我跑出來的圖數列1與數列2
沒有變成最大值,與最小值ㄝ
請幫我再看看
感恩

Book3.rar (20.87 KB)
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

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

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

TOP

        靜思自在 : 【時間成就一切】時間可以造就人格,可以成就事業,也可以儲積功德。
返回列表 上一主題