CONCATENATE可以組合字串,
但重點是不知道你在那一個字元開始是注音,少數還能用left ,right 等去取字元,多了就累了.幾仟筆..和自己插入不是一樣嗎
如果它分三個欄位,組合起來就快了..,
A B C
投石 ㄨㄣˋ 路
志同道 ㄏㄜˊ
ーㄡˇ 志一同
CONCATENATE(A1,"「",B1,"」",C1)
空白沒差,但是要框選的字要在同一個地方
我只會用 VBA 做
假設 A1..A10 是原始字串
B1..B10 是結果字串
那麼程式如下
<pre class="c" name="code">
Option Explicit
Const nRowStart = 1 '開始列
Const nRowEnd = 10 '結束列
Const sColSource = "A" '原始行
Const sColDest = "B" '結果行
Sub Main()
Dim nRow, nIdx, sChar, sDestString
Dim bIsPhonetic As Boolean
For nRow = nRowStart To nRowEnd
bIsPhonetic = False '現在是否是注音符號
sDestString = ""
For nIdx = 1 To Len(Range(sColSource & nRow).Value)
sChar = Mid(Range(sColSource & nRow).Value, nIdx, 1)
If isPhonetic(sChar) Then '檢查是否是注音符號
If bIsPhonetic = False Then
bIsPhonetic = True
sDestString = sDestString & "「" & sChar '注音符號開始
Else
sDestString = sDestString & sChar '注音符號
End If
Else
If bIsPhonetic = True Then
bIsPhonetic = False
sDestString = sDestString & "」" & sChar '注音符號結束
Else
sDestString = sDestString & sChar '一般文字
End If
End If
Next
If bIsPhonetic = True Then
sDestString = sDestString & "」"
End If
'存到結果行
Range(sColDest & nRow).Value = sDestString
Next
End Sub
Function isPhonetic(ByVal pChar) As String '判斷是否為注音符號
If InStr("ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄧㄨㄩㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦˊˇˋ˙", pChar) > 0 Then
isPhonetic = True
Else
isPhonetic = False
End If
End Function