【问题标题】:Remove spaces in cells without text and numbers删除没有文本和数字的单元格中的空格
【发布时间】:2014-10-02 16:21:11
【问题描述】:

我有这个宏的代码,它可以删除带有文本或数字的单元格中的前导和尾随空格:

Sub LIMPIAR()
Dim i As Integer

For i = 2 To 20628
Cells(i, 7).Value = Trim(Cells(i, 6).Value)

Next

End Sub

但是,有些单元格的内容是" "。所以我想将这种单元格转换为""。我该怎么做?

编辑:我正在处理抓取的数据。

【问题讨论】:

  • Trim 应该做你想做的事。您确定不会消失的空格是正常空格而不是不间断空格吗?另外,为什么要在单元格内容的末尾添加一个空字符串?
  • 我看到了,Trim 并非在所有单元格中都有效。我正在处理抓取的数据。我真的不知道什么是不间断空间,这可能是问题所在。
  • 在即时窗口中输入Print Asc(<cell with only spaces>),看看你得到了什么号码。如果是 160,修剪将不起作用。
  • 我得到了 160。你是对的。谢谢,我会学习一个新概念并处理它!

标签: vba excel


【解决方案1】:

也许像这样处理他们会有所帮助:

 If Len(Cells(i,6).Value) <= 2 Then Cells(i, 7).Value = "" End If

 If Cells(i,6).Value = "  " Then Cells(i, 7).Value = "" End If

【讨论】:

    【解决方案2】:

    不是一个非常优雅的解决方案,但我会使用 split 函数,然后重新连接结果数组的元素。假设您的字符串在单元格 A1 中,

    mystring = ""
    myarray = Split(Cells(1, 1), " ")
    For i = LBound(myarray) To UBound(myarray)
      If Trim(myarray(i)) <> "" Then
        mystring = mystring & Trim(myarray(i)) & " "
      End If
    Next i
    MsgBox Trim(mystring)
    

    mystring 应该提供一个字符串,单词之间只有一个空格。您可以将此代码放入循环中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 2020-08-02
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多