TRIM+测试删除空格

2023-10-15  本文已影响0人  极客Geek

TRIM

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

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

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

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

删除空行

测试删除空格

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


上一篇 下一篇

猜你喜欢

热点阅读