Excel VBA宏 - 字符串到十进制

时间:2017-07-13 15:40:15

标签: excel vba excel-vba

我试图将包含坐标的单元格值转换为整数。字符串值为" X-324.45",但希望能够在以后循环使用此数字。

Msgbox1将字符串显示为X-324.45 Msgbox2将字符串显示为-324.45 Msgbox3显示空白的MsgBox

我在这里缺少什么?我想-324.45是一个可以用于数学运算的变量。

谢谢,

 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)

2 个答案:

答案 0 :(得分:3)

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

MsgBox ("Value3: " + YVAL3)失败,因为它尝试将不可转换的字符串算术添加到double - 始终使用&来连接:

MsgBox ("Value3: " & YVAL3)

答案 1 :(得分:3)

YVAL2 = CDec(Mid(YVAL1, 2, 10))

enter image description here

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