【问题标题】:Remove blank spaces to the left and right of texts or numbers删除文本或数字左右的空格
【发布时间】:2020-04-02 19:19:59
【问题描述】:

我想删除文本或数字左右的空格。

我想使用 VBA 代码。

由于我现在在电子表格的每个单元格中应用公式,这将为我节省大量工作。

逐个单元格起作用的公式:

对于数字:

=TRIM(SUBSTITUTE(A1;CHAR(160);CHAR(32)))*1

对于文本和空单元格:

=TRIM(SUBSTITUTE(A1;CHAR(160);CHAR(32)))

我在互联网上找到了这个 VBA 代码。它不能解决我的情况。我发现有趣的是它会生成一个要求选择单元格的框。

Sub Clear()
Dim rLocal As Range

'Assignment of variables
Set rLocal = Application.InputBox(Prompt:="Select the cells you want to clear...", Type:=8)

rLocal.Replace What:=" ", Replacement:=""
End Sub

  

当我将“”更改为“”时,我发现以下代码有效。它似乎很重,并且似乎多次进行相同的替换。

Public Sub RemoveSpaceInString()    
    Dim myCell As Range            
    For Each myCell In Selection
        myCell = Trim(myCell)
        myCell = Replace(myCell, vbTab, "")
        myCell = Replace(myCell, " ", "")
        myCell = Replace(myCell, Chr(160), "")
    Next myCell    
End Sub

如果无法创建 Application.InputBox,代码将对 Excel 工作簿中的所有电子表格进行此更改。

【问题讨论】:

    标签: excel vba


    【解决方案1】:
         Public Sub RemoveSpaceInString()
    Dim myCell As Range
    
    For I = 1 To ThisWorkbook.Worksheets.Count
    ThisWorkbook.Worksheets(I).Activate
    
    Set selrange = Selection
    
    For Each myCell In selrange
        myCell = Trim(myCell)
        myCell = Replace(myCell, vbTab, "")
        myCell = Replace(myCell, Chr(160), "")
    Next myCell
    Next I
    
    End Sub
    

    现在,您可以对任何工作表中的选择运行代码。

    如果您想在任何预定义范围内运行代码,则需要将选择替换为该预定义范围。

    【讨论】:

    • 亲爱的 Brian, 代码分析了整个工作簿,但只对我正在查看的电子表格进行了更改。此外,它删除了所有空格,包括单词之间的空格。示例:“我的名字是”>“我的名字”我只想让他删除文本和数字左右的空格。示例:“测试”>“测试”。 “我 50 岁”>“我 50 岁”。可能有两种类型的代码:一种是生成一个框,要求我选择将应用代码的单元格,另一种与您所做的相同:对于工作簿中的所有工作表?谢谢。若昂。
    • 选择工作簿中每个工作表上要更改的范围。然后运行上面的代码,它将在每张纸上运行并对每个已选择的范围进行更改。此外,我已经删除了替换代码,所以现在它不会删除单词之间的空格。
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2021-05-11
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多