2016-08-18 31 views
3

我已经在VBA中编写了简单的代码(并且看到了问题herehere,并且这些解决方案都不起作用)。更改VBA中的小数点分隔符

  Dim toString As String 
      toString = cell.Value & "_" 
       If (InStr(toString, ",")) Then 
       toString = Replace(toString, ",", ".") 
       toString = Trim(toString) 
       cell.Value = " " + Left(toString, (Len(toString) - 1))    
       End If 

不幸的是,而不是带点分隔符的字符串,excel让我在cell.Value中逗号加倍。奇怪的是,当我用“_”交换这个空格时,它转换f。恩。 12,3进入_12.3。我该如何解决它?

P.S.我在结尾添加“_”以确保toString将保持为String。

+0

这条线应该做什么? 'cell.Value =“”+ Left(toString,(Len(toString) - 1))' – Andreas

+0

@Andreas首先看起来如此:'cell.Value = Left(toString,(Len(toString)-1))'但我发现cell.Value变成了double,所以我试图添加一个空格来将它转换成字符串,但没有成功。 – lawstud

回答

2

我以前有过这个问题。在写入之前,您需要更改单元格的格式。该线路运行

Application.Workbooks("Book1").Sheets("Sheet1").Range("A1:A100").NumberFormat = "@" 

以后,就可以写这样的列:

Cells(1,1).Value = "12.3" 

Excel将保持字符串格式化,而不是将其转换为双。

希望这会有所帮助。

+0

它的工作原理!谢谢 :) – lawstud

相关问题