如何在Excel中將文本字符串轉換為適當的大小寫?
在Excel中,您可以應用Proper函數輕松地將文本字符串轉換為大寫形式,但是,有時,在將文本字符串轉換為大寫形式時,您需要排除一些特定的單詞,如下圖所示。 本文,我將討論在Excel中解決此工作的一些快速技巧。
通過使用公式將文本字符串轉換為適當的大小寫例外
通過使用VBA代碼將文本字符串轉換為帶例外的適當大小寫
通過使用公式將文本字符串轉換為適當的大小寫例外
驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Firefox 和 Safari!
每天節省50%的時間,并減少數千次鼠標單擊!
可能以下公式可以幫助您快速處理此任務,請這樣做:
輸入以下公式:
= UPPER(LEFT(A2))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(“”&PROPER(A2)&“ “,”是“),”美國“,”美國“)),2,LEN(A2)) 放入要獲取結果的單元格中,然后拖動填充手柄以填充此公式,并且文本字符串已轉換為正確的大小寫但特定的異常,請參見屏幕截圖:
備注:在以上公式中, A2 是您要轉換的單元格, “ Of”,“ A”,“ Is”,“ Usa” 是轉換后的正常大小寫單詞, “ of”,“ a”,“ is”,“ USA” 是您要從適當情況中排除的單詞。 您可以根據需要更改它們,或使用SUBSTITUTE功能添加其他單詞。
通過使用VBA代碼將文本字符串轉換為帶例外的適當大小寫
如果上面的公式有些難以理解并且無法滿足您的需要,在這里,您還可以應用VBA代碼來完成此任務。 請一一進行以下步驟。
1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic應用程序 窗口。
2。 點擊 插頁 > 模塊,然后將以下代碼粘貼到 模塊窗口.
VBA代碼:將文本字符串轉換為適當的大小寫,但以下情況除外:
Sub CellsValueChange()
Updateby Extendoffice
Dim xSRg As Range
Dim xDRg As Range
Dim xPRg As Range
Dim xSRgArea As Range
Dim xRgVal As String
Dim xAddress As String
Dim I As Long
Dim K As Long
Dim KK As Long
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
If xSRg Is Nothing Then Exit Sub
Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
If xDRg Is Nothing Then Exit Sub
Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
If xPRg Is Nothing Then Exit Sub
Set xDRg = xDRg(1)
For I = 1 To xSRg.Areas.Count
Set xSRgArea = xSRg.Areas.Item(I)
For K = 1 To xSRgArea.Count
xRgVal = xSRgArea(K).Value
If Not IsNumeric(xRgVal) Then
xRgVal = CorrectCase(xRgVal, xPRg)
xDRg.Offset(KK).Value = xRgVal
End If
KK = KK + 1
Next
Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
Dim xArrWords As Variant
Dim I As Integer
Dim xPointer As Integer
Dim xVal As String
xPointer = 1
xVal = xRgVal
xArrWords = WordsOf(xRgVal)
For I = 0 To UBound(xArrWords)
xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
Debug.Print xPointer
Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
Next I
CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
Dim xDelimiters As Variant
Dim xArrRtn As Variant
xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
For Each xEachDelimiter In xDelimiters
xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
Next xEachDelimiter
xArrRtn = Split(Trim(xRgVal), " ")
WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
With xERg
If IsError(Application.Match(xArrWord, .Cells, 0)) Then
CorrectCaseOneWord = Application.Proper(xArrWord)
Else
CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
End If
End With
End Function
3。 然后按 F5 鍵以運行此代碼,并彈出一個提示框,提醒您選擇要轉換的原始單元格,請參見屏幕截圖:
4。 然后點擊 OK,在彈出的框中選擇要在其中輸出結果的單元格,請參見屏幕截圖:
5。 繼續點擊 OK,然后在彈出對話框中,選擇要排除的文本,請參見屏幕截圖:
6。 然后點擊 OK 退出對話框,并且所有文本字符串均已轉換為適當的大小寫,但排除了指定的單詞,請參見屏幕截圖:
最佳辦公生產力工具
將小時轉化為分鐘 Kutools for Excel!
準備好增強您的 Excel 任務了嗎? 利用的力量 Kutools for Excel - 您終極的節省時間的工具。 簡化復雜的任務并像專業人士一樣瀏覽數據。 以閃電般的速度體驗 Excel!
為什么需要 Kutools for Excel
??? 超過 300 項強大功能: Kutools 包含 300 多項高級功能,可簡化您在 1500 多種場景中的工作。
?? 卓越的數據處理能力:合并單元格、刪除重復項并執行高級數據轉換 - 所有這些都不費吹灰之力!
?? 高效的批量操作:當你可以聰明地工作時,為什么還要付出額外的努力呢? 輕松批量導入、導出、組合和調整數據。
?? 可定制的圖表和報告:訪問各種附加圖表并生成富有洞察力的報告。
??? 強大的導航窗格:通過強大的列管理器、工作表管理器和自定義收藏夾獲得優勢。
?? 七種類型的下拉列表:通過各種功能和類型的下拉列表使數據輸入變得輕而易舉。

?? 用戶友好:對于初學者來說輕而易舉,對于專家來說是一個強大的工具。
立即下載,與 Excel 一起穿越時空!
閱讀更多
免費下載... 采購...
Office Tab 為 Office 帶來選項卡式界面,讓您的工作更輕松
在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
在同一窗口的新選項卡中而不是在新窗口中打開并創建多個文檔。
每天將您的工作效率提高50%,并減少數百次鼠標單擊!