VBA拆分字符串并转换为Int

时间:2016-02-22 13:26:19

标签: excel vba excel-vba split

我有一张Excel工作表,其中我在J4列中有数据:J163,每个单元格包含一个字符串,例如J4 =" 1 6,8 18,20 24"

使用VBA我想使用Split功能分隔分隔符',' 然后转换字符串值, " 1 6,8 18,20 24"整数。这应该导致类似这样的事情' 1 6' ' 8 18' ' 20 24'

我想迭代每两个整数值减去这样的

1-6 = 5

8-18 = 10

20-24 = 4

每次将这些结果添加到变量,即' total'

根据已执行的减法次数,增加一个变量cnt ++,在这种情况下为3次,(total + cnt)。

总计= 22

从单元格J4计算的该结果,即22应该输入到L4中。 J5的结果应输入L5等。

希望这是有道理的。 下面是一个非常简单的伪代码,(VBA的新手)你的指导会很受欢迎。

Sub CalcHrs()

'Variables
Dim wrdArray() As String
Dim textString As String
Dim total As Integer 'substration results accumulation
Dim cnt As Integer 'for loop iteration count

' Grab String
textString = Range("J4")
' Place string into Array and Split
wrdArray() = Split(textString)

'Loop to convert string array to int array

'Some loop (i < array.length, bla bla)
'array index 0 - array index 1 place result into 'total'
'iterate through until length of array is reached, while cnt++

'place result of total + cnt into cell "L4"

'Move onto cell "J5" until "J163"

End Sub

1 个答案:

答案 0 :(得分:2)

就像有人写的那样。这不是一个免费的“写我的代码”#34;服务,您应该尝试自己,如果您的代码不起作用,那么您可以在此处发布以获得帮助。

我会给你一些提示:

  • 拆分单元格值如下:拆分(单元格,&#34;,&#34;)
  • 使用for-each迭代此Split的数组结果并将每个值拆分为:Split(value,&#34;&#34;)
  • 将1加到正常计数中,并将ABS(cint(value1) - cint(value2))添加到总计数中。 Value1和Value2是第二次拆分所反映的值。