如何修改EXCEL公式

2013-05-08 9:53 am
請問:
欄位A1公式為=XQBTS|Quote!'5398.TW-ID'
欄位A2公式為=XQBTS|Quote!'5398.TW-Name'
若在A3欄位輸入任何數字例如4462可以取代 A1與A2公式裡的5398變成
欄位A1公式為=XQBTS|Quote!'4462.TW-ID'
欄位A2公式為=XQBTS|Quote!'4462.TW-Name'

除了用尋找與取代來更改 是否還有其他方法或用VBA來取代

謝謝
更新1:

若改為這樣A1公式改為="XQBTS|Quote!'"&A3&".TW-ID'" 公式就成為字串 也就沒有公式本身的效果無法運算 就好比=6+3為9 變成字串6+3了

更新2:

A1用=INDIRECT("XQBTS|Quote!'"&A3&".TW-ID'") 顯示#REF! 好像不行

更新3:

用准提部林大大的VBA可以更新DDE的代碼 很不好意思的 可以請問一個狀況 若是工作表1 A1列~A20列是DDE數據 在工作表2的A1欄~A20欄只要輸入代碼 就能去改變工作表1的DDE數據 請大大指導我 謝謝

更新4:

請大大撥空看看檔案 是否能改變 因FUNP.net無法登入 請參考https://Jerry2013.opendrive.com/files?OF85MTYzOTcyX29NUURN 謝謝

更新5:

感謝准提部林大大 百忙中解決我的疑問 用您的程式碼 執行無誤就是我想要的方式 真的謝謝您

回答 (4)

2013-05-11 6:39 pm
✔ 最佳答案
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  If .Address = "$A$3" Then
  If .Value <> "" Then
   Application.DisplayAlerts = False

2013-05-08 21:34:01 補充:
   TT = "=XQBTS|Quote!'" & .Value
   [A1] = TT & ".TW-ID'"
   [A2] = TT & ".TW-Name'"
  End If
  End If
End With
End Sub

DDE公式無法使用INDIRECT!

2013-05-09 17:31:47 補充:
如果工作表1 A1列~A20列的DDE公式文字都不一樣,
且除編號外,其它字元英數混合,就很難去抓取代位置!
有檔案看較準確!

這有兩題參考,看能否自行套用:
http://tw.knowledge.yahoo.com/question/question?qid=1013032004425
http://tw.knowledge.yahoo.com/question/question?qid=1613041903983

2013-05-10 14:22:22 補充:
〔代碼〕工作表區程式:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Or .Item(1) = "" Then Exit Sub
Sheets("DDE").Rows(.Row).Replace "!'*.", "!'" & .Text & ".", Lookat:=xlPart
End With
End Sub

2013-05-11 10:39:33 補充:
EXCEL VBA.輸入新編號,自動將DDE公式中的原編號全部取代
                         <.准提部林.>
---------------------------------
■公式範例:DDE公式工作表.第2列
 B2:=XQBTS|Quote!'5398.TW-ID' C2:=XQBTS|Quote!'5398.TW-Name' D2:=XQBTS|Quote!'5398.TW-Time' E2:=XQBTS|Quote!'5398.TW-Price' F2:=XQBTS|Quote!'5398.TW-Volume' G2:=XQBTS|Quote!'5398.TW-PriceChange' H2:=XQBTS|Quote!'5398.TW-PriceChangeRatio' I2:=XQBTS|Quote!'5398.TW-Open' J2:=XQBTS|Quote!'5398.TW-High' K2:=XQBTS|Quote!'5398.TW-Low' L2:=XQBTS|Quote!'5398.TW-TotalVolume' M2:=XQBTS|Quote!'5398.TW-PreClose' N2:=XQBTS|Quote!'5398.TW-StockNetValue' O2:=XQBTS|Quote!'5398.TW-StockValueRatio' P2:=XQBTS|Quote!'5398.TW-PERatio' Q2:=XQBTS|Quote!'5398.TW-PBRatio' 
 --主要需求--
 在〔代碼〕工作表A欄輸入新編號,自動取代〔同列〕公式的代碼。
 例如:輸入〔2917〕,則將〔5398〕全數取代。
 
■程式碼1:限單格輸入.單格取代
 Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
   If .Count > 1 Or .Item(1) = "" Or .Row = 1 Then Exit Sub
   Sheets("DDE").Rows(.Row).Replace "!'*.", "!'" & .Text & ".", Lookat:=xlPart
 End With
 End Sub
 
■程式碼2:可複製貼入單格或多格代碼,一次取代
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim xR As Range
 With Target
 If .Columns.Count > 1 Or .Column > 1 Then Exit Sub
 For Each xR In .Cells
  If xR.Row > 1 And xR.Value <> "" Then
   Sheets("DDE").Rows(xR.Row).Replace "!'*.", "!'" & xR.Text & ".", Lookat:=xlPart
 End If
 Next
 End With
 End Sub
---------------------------------
2015-04-30 9:10 am
●九州 娛樂 網站 http://ts777.cc
●●●運彩遊戲、真人遊戲、電子遊戲、對戰遊戲、對戰遊戲●●●

●新舊會員儲值就送500點

● 真人百家樂彩金等你拿

●線上影片直播、正妹圖、討論區免費註冊

歡迎免費體驗交流試玩!

●九州 娛樂 網站 http://ts777.cc
2013-05-08 7:34 pm
A1
=INDIRECT("XQBTS|Quote!'"&A3&".TW-ID'")

A2
=INDIRECT("XQBTS|Quote!'"&A3&".TW-Name'"

看看可不可以...

2013-05-08 11:34:39 補充:
A2
=INDIRECT("XQBTS|Quote!'"&A3&".TW-Name'")
2013-05-08 5:18 pm
A1公式改為="XQBTS|Quote!'"&A3&".TW-ID'"

A2公式改為="XQBTS|Quote!'"&A3&".TW-Name'"

在A3欄位輸入任何數字或文字可取代.


收錄日期: 2021-04-27 20:16:34
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20130508000010KK00336

檢視 Wayback Machine 備份