VBA - 拆分功能并将其转换为整数值

时间:2014-07-02 16:00:42

标签: excel-vba vba excel

细胞D1是" 12 x 15KG"有时它可能是" 5 x 15KB"

this_packing = Val(Split(Worksheets("DA").Range("D1").Value, "X"))

以上返回"类型不匹配错误13" 如何将Integer值转换为' this_packing' ?

谢谢!

2 个答案:

答案 0 :(得分:1)

1)Split返回一个数组,因此Val(Split(..))无效 2)Split是区分大小写的,因此你需要“x”来匹配“X”。

Option Explicit

Sub sub1()
  Dim i1&, s0$, s1$, this_packing As Variant
  this_packing = (Split("12 x 15KG", "x"))
  s0 = this_packing(0)
  s1 = this_packing(1)
  i1 = Val(this_packing(0))
End Sub

答案 1 :(得分:1)

Split返回一个数组(即使找不到分隔符,它也会返回一个包含原始值作为第一个元素的数组),因此您需要指定该部分的索引。转换:

' First element: 12 in "12 x 15KG"
first = Val(Split(Worksheets("DA").Range("D1").Value, "x")(0)) ' -> 12

' Second element: 15 in "12 x "15KG"
second = Val(Split(Worksheets("DA").Range("D1").Value, "x")(1)) ' -> 15

确定是使用0基索还是1基索引可能有点令人困惑,但Split默认使用0基。