Excel VBAmacros – string到十进制

我试图将包含坐标的单元格值转换为整数。 string值是“X-324.45”,但是希望能够在稍后的if循环中使用这个数字。

Msgbox1将string显示为X-324.45 Msgbox2将该string显示为-324.45 Msgbox3显示空白MsgBox

我在这里错过了什么? 我想-324.45是一个我可以用于math运算的variables。

谢谢,

Dim YVAL1 As String Dim YVAL2 As String Dim YVAL3 As Double YVAL1 = ActiveCell.Offset(0, -4).Value YVAL2 = Mid(YVAL1, 1, 10) YVAL3 = CDbl(YVAL2) MsgBox ("Value1: " + YVAL1) MsgBox ("Value2: " + YVAL2) MsgBox ("Value3: " + YVAL3) 

Mid(YVAL1, 1, 10)不会删除任何内容 – 从第二个字符Mid(YVAL1, 2, 10)读取。

MsgBox ("Value3: " + YVAL3)失败,因为它尝试算术添加一个不可转换的string到一个double – 总是使用&来连接:

 MsgBox ("Value3: " & YVAL3) 
 YVAL2 = CDec(Mid(YVAL1, 2, 10)) 

在这里输入图像说明

 Sub Button1_Click() Dim yval1, yval2 yval1 = Range("A1").Value yval2 = CDec(Mid(yval1, 2, 10)) MsgBox ("Value: " & yval2) End Sub