標題:
如何快速編輯大量儲存格
[打印本頁]
作者:
藍天麗池
時間:
2016-3-12 11:05
標題:
如何快速編輯大量儲存格
本帖最後由 藍天麗池 於 2016-3-12 11:10 編輯
[attach]23429[/attach]
請問大大,我接券商RTD的資料,我弄好後出現如上圖那樣,之後要在每個儲存格內按F2+Enter才有辦法連接到券商那邊,才會出現數字,但因為資料很多,要如何做才能執行大量且快速的編輯儲存格呢??
上圖有數字的部分是已經執行F2+Enter,公式部分是還沒有執行
Sub 巨集1()
'
' 巨集1 巨集
'
'
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,2330,""BestBidVolume2"")"
Range("E3").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,2317,""BestBidVolume2"")"
Range("E4").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,6505,""BestBidVolume2"")"
Range("E5").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,2412,""BestBidVolume2"")"
Range("E6").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,1303,""BestBidVolume2"")"
Range("E7").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,1301,""BestBidVolume2"")"
Range("E8").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,2882,""BestBidVolume2"")"
Range("E9").Select
ActiveCell.FormulaR1C1 = "=RTD(""money.excel"", ,1326,""BestBidVolume2"")"
Range("E10").Select
End Sub
上述程式碼是我用巨集錄製,目前是執行到E10,要如何簡化讓程式碼能夠執行到E900呢??
作者:
Brandy
時間:
2016-3-12 11:23
回復
1#
藍天麗池
看來應該是元大的RTD,我的是開EXCEL前就要先打帳密,打完就可以連接了,我還是第一次聽到要F2+enter
你打開他的範例有需要這樣才有資料嗎?
作者:
c_c_lai
時間:
2016-3-12 15:42
回復
1#
藍天麗池
附上一個範例,參考看看!
多年未接觸券商系統了,尚不知你的用意。
[attach]23431[/attach]
作者:
藍天麗池
時間:
2016-3-12 22:31
本帖最後由 藍天麗池 於 2016-3-12 22:33 編輯
回復
3#
c_c_lai
[attach]23432[/attach]
[attach]23433[/attach]
因為代碼很多,所以我把它分段之後用"&"連起來,之後複製貼上值,我並非直接改股票代號,所以處理起來才會這樣
變成要編輯後他才會變成數字型態
請教一下C大,我上面說的那個要如何將程式碼簡化處理到E900??
如果C大還是不懂,可以先大概告訴我要如何簡化程式碼嗎??
作者:
藍天麗池
時間:
2016-3-12 22:34
回復
2#
Brandy
我是因為有更改過
作者:
c_c_lai
時間:
2016-3-13 08:15
本帖最後由 c_c_lai 於 2016-3-13 08:22 編輯
回復
4#
藍天麗池
RTD使用範例中:
A6 = Price
C3 = $TWT
=RTD("money.excel",,C$3,$A6)
有明確的單元內容可提供替換。
如此便可從 A欄中帶出公式應用:
Sub Ex()
Dim rng As Range
' 你可以利用 For Each ~ Next 一一將公式得出。
For Each rng In Range("A5", Range("A" & Rows.Count).End(xlUp))
' Debug.Print rng.Address
' 假設公式要寫在 "O" 欄,即從 O5, O6, O7, ......., 到最後列。
rng.Offset(1, 14).Formula = "=RTD(""money.excel"",,C$3," & rng.Address & ")"
Next
End Sub
複製代碼
而在你的範例裡:
2330, 2317, 6505, ....., 1326 (假設 執行到 E900, E900 是要帶入 1326)
試問這些代碼你要如何得知,換句話說代碼要根據哪裡才能一一求得?
無中生有?不能只有你自己知道代碼為何,程式它是無法無中生有。
作者:
藍天麗池
時間:
2016-3-13 09:03
回復
6#
c_c_lai
C大我了解了,感謝
作者:
准提部林
時間:
2016-3-13 11:57
A欄放編號,其它不用,直接在E欄下公式:
Sub TEST()
With Range("E2:E" & [A65536].End(xlUp).Row)
.Formula = "=""=RTD(""""money.excel"""", ,""&A2&"",""""BestAskVolume5"""")"""
.Value = .Value
'.Replace "=", "=", Lookat:=xlPart '如果還無法轉成DDE公式,再加這一行
End With
End Sub
若其它欄位的公式參數或文字不相同,可上傳較詳細內容∼∼∼
作者:
藍天麗池
時間:
2016-3-21 09:45
回復
3#
c_c_lai
http://forum.twbts.com/thread-16677-1-1.html
C大可以請你幫我看看嗎??
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)