iT邦幫忙

0

可否使用VBA在Word抓取文字後方數值進行運算?

  • 分享至 

  • xImage

想請問要如何使用VBA抓取某個字元後的數值並進行運算?

假如用EXCEL,可以透過FIND、RIGHT、LEN函數去抓取數值出來再運算。
但在WORD裡,就沒有辦法使用函術式了...

我不太理解VBA要怎讓WORD判斷字元數,因為數值長短不一。

取一小部分來說

G2 X7. Y9.75 Z14. I10.75 J-1.051
Z12.5 I0. J-9.75
Z11. I0. J-9.75
Z9.575 I0. J-9.75
Z8. I0. J-9.75
Z-6.5 I0. J-9.75
Z-5. I0. J-9.75
Z3.5 I0. J-9.75
Z2. I0. J-9.75
Z.5 I0. J-9.75

這段文字中,Z有整數、小數、負數。
並且Z數值長短不一,我想抓Z後面數值並進行運算,比方說乘二。

結果可能就變成如下
G2 X7. Y9.75 Z28. I10.75 J-1.051
Z25. I0. J-9.75
Z22. I0. J-9.75
Z19.15 I0. J-9.75
Z16. I0. J-9.75
Z-13. I0. J-9.75

請問VBA該怎寫才能抓取Z後方的數值?

不好意思呀,問這麼菜鳥的問題m(_ _)m

因為實際上要運用的場合,可能會有百行左右,人工去取代、運算總會漏,所以才想試著用電腦處理這段。

froce iT邦大師 1 級 ‧ 2023-09-05 10:47:05 檢舉
複製到excel去算。
word可以寫但會很難寫。
菩薩慈悲:看不懂。什麼是「取Z後方的數值?」可以舉個實例和演算前後的結果供參照嗎?感恩感恩 南無阿彌陀佛
ps.附議 @froce
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
Arance
iT邦新手 4 級 ‧ 2023-09-05 15:30:46

Sub marco1()
For times = 1 To 10
With Selection.Find
.Text = "Z*I"
.Execute
.MatchWildcards = True
End With
Selection = "Z" & Mid(Selection, 2, Len(Selection) - 3) * 2 & " I"
Next
End Sub


不確定是不是能幫上忙,我在mac試過,游標放在文章最開始,然後因為這邊我放了範例的十列,所以for 是1到10
可以試試看

1
海綿寶寶
iT邦大神 1 級 ‧ 2023-09-05 20:23:35

可以,寫法如下
1.錄製巨集
2.取得字串
3.截取文字
4.轉成數字
5.顯示出來

https://ithelp.ithome.com.tw/upload/images/20230905/20001787SmcxKUV936.png

我要發表回答

立即登入回答