【问题标题】:VBA delete spaces within a stringVBA删除字符串中的空格
【发布时间】:2018-06-19 12:42:21
【问题描述】:

我希望能够从一组单元格中删除所有空格,以便单元格内容成为我想要的一串信息。我想出了一个代码,但它不起作用,我不知道是否必须使用替换功能

我的代码是:

Sub Tester()

Dim SearchString As String
Dim cell As Range
Dim LastRowSource As Long
Dim ws1 As Worksheet

Set ws1 = ActiveWorkbook.ActiveSheet

SearchString = " " 'look for strings containing ( )

With ws1

    LastRowSource = .Cells.Find(" ", [B2], , , xlByRows, xlPrevious).Row

    For Each cell In .Range("B2:B" & LastRowSource)

            If InStr(cell.Value, SearchString) > 0 Then
                cell.Value = Replace(" ", "")
         End If
    Next cell
End Sub

【问题讨论】:

  • 您不需要 VBA,只需使用工作表中的查找和替换即可。

标签: vba excel search replace


【解决方案1】:

如果您需要以编程方式执行此操作,则使用“替换”对话框录制宏会生成以下代码:

Sub Macro1()
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

用您的范围替换Selection。您不需要迭代每个单元格。

【讨论】:

    【解决方案2】:

    你不需要循环:

    With ws1
        .Range("B2", .Cells(.rows.count, "B").End(xlUp)).Replace " ", vbnullstring, xlpart
    End With
    

    【讨论】:

    • 我如何指定这个在整个工作表上工作? @罗里
    • 只是:ws1.Cells.Replace " ", vbnullstring, xlpart
    【解决方案3】:

    试试这样:

    LastRowSource = 10000. 如果它有效,那么问题在于您设置最后一行的方式。因此,将LastRow() 函数添加到您的代码中,它应该可以工作:

    LastRowSource = LastRow ws1
    
    Function LastRow(sh As Worksheet)
        On Error Resume Next
        LastRow = sh.Cells.Find(What:="*", _
                                After:=sh.Range("A1"), _
                                Lookat:=xlPart, _
                                LookIn:=xlFormulas, _
                                SearchOrder:=xlByRows, _
                                SearchDirection:=xlPrevious, _
                                MatchCase:=False).Row
        On Error GoTo 0
    End Function
    

    从这里开始的功能 - https://www.rondebruin.nl/win/s9/win005.htm

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2017-11-20
      相关资源
      最近更新 更多