如何在 Excel 中将文本字符串转换为正确的大小写并包含例外情况?
您是否曾经想过在 Excel 中是否有方法可以自动更正句子中字符串的大小写?在 Excel 中可以实现这一点。本教程将帮助您了解如何在 Excel 中将文本字符串转换为正确的大小写并包含例外情况。我们可以使用 VBA 应用程序来完成此任务,因为它无法直接在 Excel 中完成。当单词的字母根据语法以正确的大小写显示时,它们被称为“正确的大小写”。
在 Excel 中将文本字符串转换为正确的大小写并包含例外情况
在这里,我们将首先创建例外情况列表,然后插入 VBA 模块并运行它以完成任务。让我们看一下在 Excel 中将字符串转换为正确的大小写并包含例外情况的简单过程。
步骤 1
让我们考虑一个 Excel 工作表,其中数据工作表类似于下图所示的数据。
然后右键单击工作表名称并选择“查看代码”以打开 VBA 应用程序。然后单击“插入”并选择“模块”。
右键单击 > 查看代码 > 插入 > 模块
步骤 2
在文本框中键入以下程序代码,如下图所示。
程序
Sub CellsValueChange() 'Update By Nirmal 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:", "Proper Text String", xAddress, , , , , 8) If xSRg Is Nothing Then Exit Sub Set xDRg = Application.InputBox("Output cells:", "Proper Text String", , , , , , 8) If xDRg Is Nothing Then Exit Sub Set xPRg = Application.InputBox("Cells to exclude:", "Proper Text String", , , , , , 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
再次,选择您需要输出的单元格并单击“确定”。
步骤 4
最后,选择例外情况的范围并单击“确定”。
结论
在本教程中,我们使用了一个简单的示例来演示如何在 Excel 中将文本字符串转换为正确的大小写并包含例外情况。
广告