返回列表 上一主題 發帖

[發問] 大家好 , 請教關於DDE自動換行與一些問題

回復 1# saleen
妳把 Excel 壓縮成 .WAR 檔之後上傳 (如迴紋針的附件),
實際看了妳的文件後再評斷。

TOP

本帖最後由 c_c_lai 於 2013-6-5 13:56 編輯

回復 3# saleen
妳紀錄每筆資料的時段是多久? 每一秒、每二十秒、或是每一分鐘?
每次資料寫入時,均顯示在第一筆資料列上,亦即之前的資料錄均往下移一行?
麻煩妳將需求說明清楚,同時每欄要對應的資料來源也請描述一下。
P.S.  請回覆時,務必點選 "回覆" 鈕,否則如沒仔細瀏覽是不知道有 "信件消息" 的。

TOP

回復  c_c_lai

c_c_lai 大抱歉 >"<
以後會記得用回覆按鈕的
我記錄的時間一樣是五分鐘一次呀
第二行 ...
saleen 發表於 2013-6-5 15:22

E、F、G 欄值是 B、C、D  (當根 - 前根) ?
請澄清公式是否如此?

TOP

回復 10# saleen
其實 GBKEE 版大他已經給妳了正確的答案,唯一不同的處理
他是從資料錄最後往上遞增,但是妳要求資料須皆由 A2 行遞增
(插行), 所以我稍稍就地取材改了寫入點:
  1. Sub updateFollow()
  2.     Dim Rng As Range
  3.    
  4.     On Error Resume Next
  5.      If (TimeValue(Now) < TimeValue("08:45:00") Or TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub

  6.     With 工作表1
  7.         .Range("A2:L2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove        '  插入資料,原本資料列均下移一行。
  8.         '  Set Rng = .[A2]
  9.         '  Rng = Sheet1.[c2]
  10.         '  Rng.Offset(, 1) = "=XQTISC|Quote!'FITX06.TF-Time'"
  11.         '  Rng.Offset(, 2) = "=R2-Q2"
  12.         '  Rng.Offset(, 3) = "=X2-W2"
  13.         '  Rng.Offset(, 4) = "=T2-U2"
  14.         '  Rng.Offset(, 5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  15.         '  Rng.Offset(, 6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  16.         '  Rng.Offset(, 7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  17.         '  Rng.Offset(, 8) = "=Y2"
  18.         '  Rng.Offset(, 9) = "=Z2"
  19.         '  Rng.Offset(, 10) = "=Z2-Q5"
  20.         '  Rng.Offset(, 11) = "= AA2 - AB2"
  21.         '  Rng.Offset(, 12) = "=AD2"
  22.         '  上面之敘述表達與下列的敘述結果是一樣的,差異只在於使用語法之巧妙不同。
  23.         Set Rng = .[A2].Resize(1, 12)
  24.         Rng(1) = "=XQTISC|Quote!'FITX06.TF-Time'"
  25.         Rng(2) = "=R2-Q2"
  26.         Rng(3) = "=X2-W2"
  27.         Rng(4) = "=T2-U2"
  28.         Rng(5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  29.         Rng(6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  30.         Rng(7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  31.         Rng(8) = "=Y2"
  32.         Rng(9) = "=Z2"
  33.         Rng(10) = "=Z2-Q5"
  34.         Rng(11) = "= AA2 - AB2"
  35.         Rng(12) = "=AD2"
  36.         Rng.Value = Rng.Value              '  將公式以欄值取代
  37.         Rng(1).NumberFormat = "hh:mm:ss"
  38.     End With
  39.     If timerEnabled Then Call timerStart
  40. End Sub
複製代碼
但是 請自行取消 {A1:L1] 間的下拉篩選,否則將無法  "插入" 資料列。

TOP

回復  c_c_lai


太強了 ! 感謝 c_c_lai 大大 >~~<
超級成功耶 !
雖然看不太懂      
Rng(5) = "=IF ...
saleen 發表於 2013-6-6 11:17

.Range("A2:L2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
在 A2 到 L2 間插入一資料列 (只異動 A ~ L 欄之位置;M ~ 以後之內容均保持不變),原本資料列均下移一行後,
Rng 設定於 A2 列  (Set Rng = .[A2].Resize(1, 12)), 所以此時:
E = 累委賣比五分變量   ("=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],"""")") (=IF(ISNUMBER(B3),B2-B3,"")) B2(當根)-B3(前跟)
F = 累賣成比五分變量   ("=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],"""")") (=IF(ISNUMBER(C3),C2-C3,"")) C2(當根)-C3(前跟)
G = 累委買口五分變量   ("=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],"""")") (=IF(ISNUMBER(D3),D2-D3,"")) D2(當根)-D3(前跟)
以 E 欄為例: 目前在第二行上 E2 欄位置; E 的往前三欄 (D、C、B) 位置即為 B2 欄,同理、B2 欄往下一行 [1] 不就是 B3 欄嗎?
再以 F 欄為例: 目前在第二行上 F2 欄位置; F 的往前三欄 (E、D、C) 位置即為 C2 欄,同理、C2 欄往下一行 [1] 不就是 C3 欄嗎?
以此類推。

TOP

回復 16# saleen
是這樣嗎?
  1. Sub updateFollow()
  2.     Dim Rng As Range
  3.    
  4.     On Error Resume Next
  5.     ' If (TimeValue(Now) < TimeValue("08:45:00") Or TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub

  6.     With 工作表1
  7.         .Range("A3:L3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove        '  插入資料,原本資料列均下移一行。
  8.         '  Set Rng = .[A3]
  9.         '  Rng.Offset(, 1) = "=XQTISC|Quote!'FITX06.TF-Time'"
  10.         '  Rng.Offset(, 2) = "=R2-Q2"
  11.         '  Rng.Offset(, 3) = "=X2-W2"
  12.         '  Rng.Offset(, 4) = "=T2-U2"
  13.         '  Rng.Offset(, 5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  14.         '  Rng.Offset(, 6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  15.         '  Rng.Offset(, 7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  16.         '  Rng.Offset(, 8) = "=Y2"
  17.         '  Rng.Offset(, 9) = "=Z2"
  18.         '  Rng.Offset(, 10) = "=Z2-Q5"
  19.         '  Rng.Offset(, 11) = "= AA2 - AB2"
  20.         '  Rng.Offset(, 12) = "=AD2"
  21.         '  上面之敘述表達與下列的敘述結果是一樣的,差異只在於使用語法之巧妙不同。
  22.         Set Rng = .[A3].Resize(1, 12)
  23.         Rng(1) = "=XQTISC|Quote!'FITX06.TF-Time'"
  24.         Rng(2) = "=R2-Q2"
  25.         Rng(3) = "=X2-W2"
  26.         Rng(4) = "=T2-U2"
  27.         Rng(5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  28.         Rng(6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  29.         Rng(7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
  30.         Rng(8) = "=Y2"
  31.         Rng(9) = "=Z2"
  32.         Rng(10) = "=Z2-Q5"
  33.         Rng(11) = "= AA2 - AB2"
  34.         Rng(12) = "=AD2"
  35.         Rng.Value = Rng.Value              '  將公式以欄值取代
  36.         Rng(1).NumberFormat = "hh:mm:ss"
  37.     End With
  38.     If timerEnabled Then Call timerStart
  39. End Sub
複製代碼
第二行就隨妳自由擺佈了 (因為成為未使用的空行了)。

TOP

回復  c_c_lai


完全成功耶 !
感謝 c_c_lai 大大 !
原來我是 a3 那邊沒改到..
^^
接下來要試著抓 ...
saleen 發表於 2013-6-6 12:56

有關電子金融傳產的成交比重方面,
妳可能就要去請教諸位版大與其他先進了!

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題