標題:
[發問]
關於看盤軟體DDE的資料來源問題..
[打印本頁]
作者:
zboo
時間:
2011-5-26 10:27
標題:
關於看盤軟體DDE的資料來源問題..
大家好 小弟有個問題想問大家
於EXCEL中要抓取自已的看盤軟體SERVER的資料時,輸入下列公式即可於ECXEL抓到
抓取台積電成交價 =CATDDE|'STOCK<Q>2330 '!CurPrice
抓取台積電漲跌幅 =CATDDE|'STOCK<Q>2330 '!Change
那如果小弟想把上列的2330改為自動抓取 A99 這個欄位的數字的話 (也為2330)
請問程式該如何去串接呢? (日後節省時間,不用一個一個欄位改數字..)
小弟試了良久都無效
請高手前輩們幫忙一下
感激不盡!!
ps.抓取股票名稱的英文是什麼阿?Goole大找不到...
作者:
luhpro
時間:
2011-5-26 22:45
本帖最後由 luhpro 於 2011-6-3 20:36 編輯
回復
1#
zboo
假設是要設定到儲存格 A3
Cells(3, 1).Formula = "=CATDDE|'STOCK<Q>" & CStr(Cells(99, 1)) & " '!CurPrice"
基本上就是以 .Formula 來設定公式,
而公式內容本身就是一個字串. (用 & 或是 + 把需要放進去的文字都串起來就可以了)
需要留意的是它的空間比儲存格的值所佔空間還要小很多.
至於抓取股票名稱的英文是什麼?
這樣看該軟體如果定義,
以個人試用過一些報價軟體的經驗來看應該是 :
=CATDDE|'STOCK<Q>2330 '!Name
或是
=CATDDE|'STOCK<Q>2330 '!StockName
之類的敘述.
現在坊間一般的股票報價軟體應該都會提供類似 "匯出到 Excel 檔案",
或是 "拖曳到 Excel 檔案" 的功能來自動產生相關的 Excel 公式,
你可以透過這類方式把股票名稱匯出或拖曳出來以產生你要的公式.
回樓下 Hsieh 大大:
拍謝, 最近狂用 .NumberFormat 來儲存異動後的資料導致上面引用錯誤,
正確應該是用 .Formula 來設定公式,
謝謝你的指正.
作者:
Hsieh
時間:
2011-5-26 23:14
回復
2#
luhpro
NumberFormat 是數值格式不是公式
作者:
GBKEE
時間:
2011-5-27 07:10
本帖最後由 GBKEE 於 2011-5-31 10:01 編輯
回復
2#
luhpro
Cell
l
s(3, 1).Formula = "=CATDDE|'STOCK<Q>" & CStr(Cells(99, 1)) & " '!CurPrice"
你的語法是正確的 但多了一個
l
上式可改成 Cells(3, 1) = "=CATDDE|'STOCK<Q>" & Cells(99, 1) & " '!CurPrice"
Formula 可省略 如[A10].Formula= 55 -> [A10] = 55
& 運算子 用來對兩個
運算式
作強迫字串連結 所以CStr是多加上可不用
作者:
luhpro
時間:
2011-5-30 22:00
本帖最後由 luhpro 於 2011-6-3 20:36 編輯
回復 luhpro
...
你的語法是正確的 但多了一個l
GBKEE 發表於 2011-5-27 07:10
其實那個 l 並不是多的喔,
你如果有仔細看可以看到首篇文章中確實每一行公式都有 l ,
因為我有注意到至少我看過的報價軟體在 "即時" 變更 Excel 上儲存格內容的公式裡都會有 l ,(不然就會無法隨時更新內容)
在 l 左邊大都是該報價軟體的名稱, 右邊才是細項資料.
另外會用 CStr 可能是因為自己用的有些亂,
有時用 + 有時又用 & 來串連字串,
我猜可能是我之前用 + 時Excel不讓連才會記成一定要用 CStr 轉換.
依你所說似乎只要有 & 應該就夠用串連字串了才是,
我不太懂什麼情形下才會需要用 + 來串連字串.(在儲存格內容可能有各種型態的情形下)
回復
6#
Hsieh
嗯...我做出來的結果是 : (實際值為兩底線中間)
_ 3 _
_12_
_12_
_12_
看來 & 與 + 的作用對象是數字時結果才會有差異,
而當對象是 "字串" 時其實作用是相同的.
回復
7#
GBKEE
晤...我還真沒發現到,謝謝你的指正,
我已經改好了.
作者:
Hsieh
時間:
2011-5-30 22:19
回復
5#
luhpro
執行底下程式就知道 & 跟 +的差別
Sub nn()
MsgBox 1 + 2
MsgBox "1" + "2"
MsgBox 1 & 2
MsgBox "1" & "2"
End Sub
複製代碼
作者:
GBKEE
時間:
2011-5-31 10:03
回復
5#
luhpro
是這個
Cell
l
s(3, 1).Formula = "=CATDDE|'STOCK<Q>" & CStr(Cells(99, 1)) & " '!CurPrice"
作者:
7777
時間:
2011-6-9 23:33
請問 可以衍伸 以 函數串接的方式處理嗎??
=CATDDE|'STOCK<Q>
2330
'!CurPrice
Cellls(3, 1).Formula = "=CATDDE|'STOCK<Q>
" & CStr(Cells(99, 1)) & "
'!CurPrice"
謝謝!!
作者:
ginbow
時間:
2011-6-10 15:47
只要有接到你設的變數就可以了
作者:
7777
時間:
2011-6-11 13:12
回復 9 # ginbow : 只要有接到你設的變數就可以了
1 請問 如果 變數同是 儲存格 A99 (設 2409 )
所以 A3內 函數設 =CATDDE|'STOCK<Q>" & CStr(Cells(99, 1)) & " '!CurPrice
結果不行 ㄝ
2 =CATDDE|'FUTOPT<FO>TXF
F1
'!Open
的F1 想改 E1 變數可以設 儲存格 A9的話 又該如何??
請高手前輩們幫忙一下 感激不盡!!
作者:
7777
時間:
2011-6-13 15:57
以下是 奇摩知識
http://tw.knowledge.yahoo.com/question/question?qid=1510080410714
http://tw.knowledge.yahoo.com/question/question?qid=1509020402077
http://tw.knowledge.yahoo.com/question/question?qid=1306042202537
[attach]6617[/attach]
以上方式 本人都試過 仍無法處理
我要問的是 可以直接用在
公式列上嗎? (而 不是程式的編輯器內 )
謝謝!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)