各文字をループしてC [次の桁を知るまで]を数値で表す文字列であるため(グローバル変数を使用したくない場合)、文字列です。それらを抽出して2を追加します。これを行う方法の例がここにあります
Sub button1_click()
Dim sFormula As String
Dim sParts As String
Dim cChar As String
Dim cFound As Boolean
Dim bracketFound As Boolean
Dim i As Long
cFound = False
bracketFound = False
sParts = Range("B15").FormulaR1C1
'loop through the string
For i = 1 To Len(sParts)
If cFound = True Then 'did we already find the C in the string
If bracketFound = True Then 'did we already find the first bracket
Dim iCount As Long
iCount = 0 'how many numeric digits we will have
While IsNumeric(Mid(sParts, i + iCount + 1, 1)) = True 'check each digit after to see if it is numeric
iCount = iCount + 1
Wend
cChar = CStr(CInt(Mid(sParts, i, 1 + iCount)) + 2) 'get our number and add 2
'update i
i = i + iCount
'reset flags
bracketFound = False
cFound = False
Else
If Mid(sParts, i, 1) = "[" Then 'check for inner bracket
bracketFound = True
cChar = Mid(sParts, i, 1)
End If
End If
Else
If Mid(sParts, i, 1) = "C" Then 'check for the C char
cFound = True
cChar = Mid(sParts, i, 1)
Else
cChar = Mid(sParts, i, 1)
End If
End If
sFormula = sFormula & cChar 'update formula
Next i
'set the new formula
Range("B15").FormulaR1C1 = sFormula
End Sub
私は非常に感銘を受けた!あなたは完全に実行しているコードを書く時間を取っただけでなく、いつかあなたと同じくらい素晴らしいことを学ぶのを助けるためにコメントに役立ちました!ありがとうございました。 – BarryMahnly