代码之家  ›  专栏  ›  技术社区  ›  LaurensVijnck

Excel VBA.Trim函数更改为,

  •  2
  • LaurensVijnck  · 技术社区  · 9 年前

    今天早些时候,我使用.trim()vba函数清理数据。虽然它导致了。被改成,我不知道为什么。

    Cells(rw, j).Value = Trim(Cells(rw, j).Value)
    

    这就是我所做的,它改变了如下值:

    有人可能会认为这是由于本地设置造成的,尽管同一列包含3(6.1)之类的值,这些值没有弄乱。

    提前感谢

    3 回复  |  直到 9 年前
        1
  •  3
  •   Rob Anthony    9 年前

    转到文件-选项-高级并查找 。您希望十进制分隔符为。千位分隔符为,

     Application.DecimalSeparator = "." 
     Application.ThousandsSeparator = "," 
     Application.UseSystemSeparators = False
    

    由于不想更改这些设置,请将代码更改为:

    Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Text)
    

    。Text将为您提供单元格中内容的字符串版本,而不是尝试将其转换为数字(如果它看起来像数字)。

        2
  •  1
  •   Andy Wynn    9 年前

    如果您不想更改此应用程序的全局系统/excel设置,可以尝试将值强制为文本,如下所示:

    With Cells(rw, j)
        .NumberFormat = "@"
        .Value = Trim(Cells(rw, j).Value)
    End With
    

    或者,根据您的评论:

    With Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Value)
    
        3
  •  0
  •   Egan Wolf    9 年前

    你可以试试这个:

    Dim temp As String
    temp = Cells(rw, j).Value
    temp = Trim(temp)
    Cells(rw, j).Value = temp