- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 1
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
18#
發表於 2010-7-30 21:07
| 只看該作者
本帖最後由 luhpro 於 2010-7-30 21:14 編輯
回復 17# cheng17875
第 1 個問題我也有發現到,
主要是因為股票代號的字數並非固定為 4 碼,
所以要改成找關鍵字 "`",
部分程式修改如下請自行帶入 :
dim iNum%
sStr = .Cells(iI, iJ).Formula
iNum = InStr(1, sStr, "`", 1)
sStr = Left(sStr, 12) & .Cells(iI, 1).Value & Mid(sStr, iNum, Len(sStr) - iNum + 1)
.Cells(iI, iJ).Formula = sStr
至於公式的修改方式主要就是取代掉 "股票代號" 的部份,
例如 精x 的公式 :
股票名稱 =eMidst|SW!'2330`1019'
股價 =eMidst|SW!'2330`205'
就是用 left()抓 2330 前面的字串 + 新的股票代號 + 2330 的 "0" 後面那個字 "`" 開始的字串來取代原公式即可.
而那另一個軟體的公式相同的以 2388 為基礎做字串分拆,
後面那個字串就抓 "8" 後面那個 "." 開始的字串就可以了.
當然還有一個方法就是不管原儲存格的內容,
直接將公式內的文字 Copy 下來分拆,
再將字串組合後丟給原儲存格就可以了,
例如 精x 的改用 :
sStr = "=eMidst|SW!'" & .Cells(iI, 1).Value & "`1019'"
.Cells(iI, iJ).Formula = sStr
缺點是公式已經定死在程式中,
若儲存格互相對調位置也必須改程式,
彈性較小. |
|