0

良い一日!問題があります: テキストの一部が選択されています。割り当ては次のとおりです。例: 本 100、鉛筆 20、... 行の数字の合計を見つけて最後に書きたい、つまり本 100、ハンドル 20 $ 120 この問題を解決しようとしています、しかし、行きません...たとえば、文字列内の文字にアクセスする方法が不明です。そうしました:

While i <> EndOfText
Char = Mid (AllSelectionText, i, 1)
If Char> = "0" And Char <= "9" Then
...
End If
i = i 1
Wend

しかし、それはあまりいいことではありません... string (i) のような関数が必要です。

4

1 に答える 1

0

正規表現を使ってみませんか?Microsoft VBScript正規表現5.5への参照を追加する必要があります。その後、以下を使用できます(テストされていません)。

Function sumOfNumbersInText(text As String) As Long

Dim rgx As New RegExp  'creates a new instance of the Regular Expression object
Dim matches As MatchCollection
Dim mtch As Match
Dim sum As Long

sum = 0
rgx.Pattern = "\d+"  'pattern for a sequence of digits
rgx.Global = True    'find all matches within text
Set matches = rgx.Execute(text) 'get collection of all substrings matching the pattern
For Each mtch In matches
    sum = sum + CLng(mtch.Value) 'change each substring into a number and add to sum
Next

sumOfNumbersInText = sum

End Function
于 2013-01-11T19:11:04.200 に答える