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