【问题标题】:How to convert from text to number without loosing symbol如何在不丢失符号的情况下从文本转换为数字
【发布时间】:2019-09-12 07:40:00
【问题描述】:

代码问题:我想从文本转换为数字,但在值旁边的单元格中,我有欧元符号 "€",然后将其删除。情况是,如果我通过 excel(“转换为数字”)进行操作,欧元符号不会被删除,但 .NumberFormat = "General""0" 的每次更改都会删除符号。要完全拥有符号,我需要先更改为文本。想要将其更正为数字,以便用户可以进行任何操作。有人遇到这个问题吗?不擦符号可以改吗?

不起作用:

With Range("G:G")  
    .Value = .Value
    .NumberFormat = "General"
End With

还有

With Range("G:G")  
    .Value = .Value
    .NumberFormat = "0"
End With

代码:

Range("G:G").NumberFormat = "@"

i = 3
Do Until ws.Cells(i, 1) = ""
    If ws.Cells(i, 7).Value <> "" Or ws.Cells(i, 7).Value <> 0 Then
        ws.Cells(i, 7) = 200 & " " & Chr(128)
    End If
i = i + 1
Loop

With Range("G:G") 
  .Value = .Value
  .NumberFormat = "General"
End With

【问题讨论】:

  • 您是否尝试使用宏记录器查看在使用 Excel 时按照您希望的方式更改格式时会发生什么?
  • 您可以更改为货币值而不是数字值,然后将保留欧元符号
  • 是的,宏记录器在 sub 的主体中没有显示任何内容。货币值仍然不会改变文本格式
  • 找到解决方案。我需要删除导致文本更改的 Chr(128) 并使用欧元数字格式“#,##0 [$€-x-euro1]”或 Plato77 建议的通用格式之一。跨度>

标签: excel vba


【解决方案1】:

如果你对货币格式而不是数字格式没问题,你可以试试:

With Range("G:G")
  .Value = .Value
  .NumberFormat = "[$€-2] #,##0.00"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2016-09-11
    相关资源
    最近更新 更多