Board logo

標題: [發問] 請問該如何用VBA批次修改儲存格中的函數? [打印本頁]

作者: j1221    時間: 2011-10-17 05:15     標題: 請問該如何用VBA批次修改儲存格中的函數?

各位前輩好,

我想要使用DDE(元大Yeswin)連結資料到Excel記錄和統整資料,主要是OP的資料,但是因為價位每天在變,所以相對應的價平價位(或是我想要觀察的價位)也是每天在變。
所以當價平價位變動後,我想要「手動」改變價平價位的時候,就變的很麻煩(請參閱附件),因為每個儲存格中都長的像這樣「=YES|DQ!TXO07500J1.Price」。
如果一旦我要改變價平價位的時候,就要手動更新大約6 x 9 x 2 =104 個儲存格,是一項大工程....:L
所以我試著寫一個巨集幫我改變每個儲存格的內容(我的失敗程式煩請參閱附件),我的「價平位置」是手動由G2輸入。

我的想法是說,先找出價平位置(藍色的那兩列)那列的所有「7500」然後取代成我要的數值,之後再用For 函數批次取代其他價位。
但我在用Left 和Right 取出「7500」的時候就出了問題,或許是因為DDE本身的指令Excel把它當成一個函數而不是字串,所以無法用這樣的方取代

可否請教各位高手幫忙,教我該怎麼寫才對?感謝各位


[attach]8250[/attach]
作者: chin15    時間: 2011-10-17 08:21

r1 = Mid(Range("B16").Formula, 2)
r2 = Right(Left(r1, 15), 4)
底下的循環看不出你要置換什麼。
作者: j1221    時間: 2011-10-18 04:06

感謝 chin15大,底下的程式碼只是我在之前論壇文章裡找到的,只是先貼上做為紀錄啦!

謝謝您的回答,我再改用您的方式試試看,感謝啦!
作者: j1221    時間: 2011-10-18 08:40

chin152大,

我用了您教的方式,可以取出Formula裡面的「7500」這個數字,但是卻沒辦法在置換之後再轉成方程式,我是這樣寫的:

r1 = Mid(Range("B16").Formula, 2)
r2 = Right(Left(r1, 15), 4)
r3 = Range("G2")
r4 = Replace(r1, r2, r3)
Cells(16, 2).Formula = r4

請問該怎麼寫才可以將(16,2)轉成方程式呢?謝謝您
作者: oobird    時間: 2011-10-18 10:16

Cells(16, 2).Formula = "=" & r4
作者: j1221    時間: 2011-10-18 10:45

感謝oobird大,可以啦!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)