0

只是出于好奇-有什么好方法可以将非连续数组制作为连续的一维数组?

说 Arr(9)=(2,5,,,,25,14,,) 到 Arr(4)=(2,5,25,14)

请指导

谢谢

4

1 回答 1

1
  • 你首先如何填充你的数组?如果您没有将范围直接转换到数组中,那么您可能会验证空单元格并将其从那里删除,而不是在稍后阶段执行此操作。

这是一个基于循环的代码来删除空项目:

Dim Arr as Variant , vArr2 as Variant
Dim d as Object
Dim i as integer, j as integer

Set d = CreateObject("Scripting.Dictionary")

'-- populate data array
vArr(1) = "10"
vArr(2) = "55"
vArr(3) = ""
vArr(4) = "27"
vArr(5) = ""

j = 1
For i = LBound(vArr) To UBound(vArr)
    If vArr(i) <> "" Then
       d.Add vArr(i), j
       j = j + 1
    End If
Next i

'-- pass into a new array
vArr2 = d.Keys

'-- output into sheet
    Sheets(1).Range("B4").Resize(1, _
             UBound(Application.Transpose(d.Keys))) = d.Keys
于 2012-12-23T12:53:59.383 回答