美文网首页
TRIM+测试删除空格

TRIM+测试删除空格

作者: 极客Geek | 来源:发表于2023-10-15 08:35 被阅读0次

    TRIM

    Excel 中的 TRIM 函数旨在从文本中剪裁 7 位 ASCII 空格字符 (值 32) 。
    在 Unicode 字符集中,有称为不间断空格字符的其他空格字符,其十进制值为 160。 此字符在网页中通常用作 HTML 实体 。
    Trim 函数和 WorksheetFunction.Trim 方法本身不会删除此不中断空格字符。

    Excel 中的 WorksheetFunction.Trim 方法不同于 VBA 中的 Trim 函数,后者仅删除前导空格和尾随空格。

    使用VBA识别并删除电子表格中的不间断空格字符

    识别不间断的空格字符
    ChrW(&HA0)

    删除空行

    • 删除空行,指删除 Word 文档中的纯文本中的空行,空行也叫空段、空白段落(表格中也有空行/空白段落,但表格与纯文本有区别,不在讨论范围),
      空行中一般含有四种空格:
      第1种是半角空格(在代码中用“ ”或“^32”或“chr(32)”表示),
      第2种是全角空格(在代码中用“ ”或“chr(-24159)”或“ChrW(12288)”表示),
      第3种是不间断空格(在代码中用“ ”或“^s”或“chrw(160)”表示),
      第4种是制表符(在代码中用“ ”或“^9”或“chr(9)”或“vbTab”表示)。
      正常情况下是看不到的,必须点击“显示/隐藏编辑标记”才可以看到。
      还有些不可见的空白字符或打印字符,一般很少遇到,可不必挂心。

    测试删除空格

    Option Explicit
    
    Sub ReplaceSpace()
    '去除不间断空格
        Dim rng As Range
        Dim cell As Range
    
        ' 选择你想要替换的区域
        Set rng = Application.Selection
    
        ' 遍历选定区域中的每个单元格
        For Each cell In rng
            ' 检查单元格中的文本是否包含不间断空格
            If InStr(cell.Value, ChrW(&HA0)) > 0 Then
                ' 如果包含不间断空格,则替换为普通空格
                cell.Value = Replace(cell.Value, ChrW(&HA0), " ")
            End If
        Next cell
    End Sub
    
    Sub ReplaceSpace2()
    '去除不间断空格和全角空格
        Dim rng As Range
        Dim cell As Range
    
        ' 选择你想要替换的区域
        Set rng = Application.Selection
    
        ' 遍历选定区域中的每个单元格
        For Each cell In rng
            ' 检查单元格中的文本是否包含不间断空格或全角空格
            If InStr(cell.Value, ChrW(160)) > 0 Or InStr(cell.Value, ChrW(12288)) > 0 Then
                ' 如果包含不间断空格或全角空格,则替换为普通空格
                cell.Value = Replace(Replace(cell.Value, ChrW(160), " "), ChrW(12288), " ")
            End If
        Next cell
    End Sub
    Sub ReplaceSpace3()
    '去除不间断空格和全角空格,并去除首尾的空格
        Dim rng As Range
        Dim cell As Range
    
        ' 选择你想要替换的区域
        Set rng = Application.Selection
    
        ' 遍历选定区域中的每个单元格
        For Each cell In rng
            ' 检查单元格中的文本是否包含不间断空格或全角空格
            If InStr(cell.Value, ChrW(160)) > 0 Or InStr(cell.Value, ChrW(12288)) > 0 Or InStr(cell.Value, Chr(32)) > 0 Then
                ' 如果包含不间断空格或全角空格,则替换为普通空格
                cell.Value = Trim(Replace(Replace(cell.Value, ChrW(160), " "), ChrW(12288), " "))
            End If
        Next cell
    End Sub
    Sub ReplaceSpace4()
    '去除不间断空格和全角空格,并去除首尾的空格和中间多余的空格
        Dim rng As Range
        Dim cell As Range
    
        ' 选择你想要替换的区域
        Set rng = Application.Selection
    
        ' 遍历选定区域中的每个单元格
        For Each cell In rng
            ' 检查单元格中的文本是否包含不间断空格或全角空格
            If InStr(cell.Value, ChrW(160)) > 0 Or InStr(cell.Value, ChrW(12288)) > 0 Or InStr(cell.Value, Chr(32)) > 0 Then
                ' 如果包含不间断空格或全角空格,则替换为普通空格
                cell.Value = WorksheetFunction.Trim(Replace(Replace(cell.Value, ChrW(160), " "), ChrW(12288), " "))
            End If
        Next cell
    End Sub
    
    
    
    
    
    
    Sub ReplaceSpace5()
    '去除不间断空格和全角空格,并去除首尾的空格和中间多余的空格
        Dim rng As Range
        Dim cell As Range
    
        ' 选择你想要替换的区域
        Set rng = Application.Selection
    
        ' 遍历选定区域中的每个单元格
        For Each cell In rng
            ' 检查单元格中的文本是否包含不间断空格或全角空格
            If InStr(cell.Value, ChrW(160)) > 0 Or InStr(cell.Value, ChrW(12288)) > 0 Or InStr(cell.Value, Chr(32)) > 0 Then
                ' 如果包含不间断空格或全角空格,则替换为普通空格
                cell.Value = Application.Trim(Replace(Replace(cell.Value, ChrW(160), " "), ChrW(12288), " "))
            End If
        Next cell
    End Sub
    
    
    'Callback for customButton onAction
    Public Sub cBAction3(control As IRibbonControl)
    Call ReplaceSpace3
    
    End Sub
    
    
    

    相关文章

      网友评论

          本文标题:TRIM+测试删除空格

          本文链接:https://www.haomeiwen.com/subject/nottidtx.html