在构造数组时尝试跳过空白单元格

时间:2015-12-21 19:26:38

标签: excel vba excel-vba

我正在尝试创建一个包含我的商店销售的所有产品的数组,但是在列表中,当矩阵很好并完成时,有大量的空白单元格是不需要的。在构建它之前有没有办法摆脱这些空白细胞?

对于我的上一个项目,我做了

Range("A:A").Find("").Select
    Selection.ClearContents
    Selection.Delete Shift:=xlUp

但我认为这不适合这个,因为我不想以任何方式弄乱工作表。

目前我有这个:

Dim iRows as Long

Sheets("PR001C2531380000001").Activate
iRows = Cells(Rows.Count, 1).End(xlUp).Row + CLng(0)

Do While Range("A:A").Find("ITEM-NO").Offset(c + 1, 0) = iRows
c = c + 1
Loop

ReDim PrMat(0 To iRows)
d = 0
For d = 0 To UBound(PrMat())
Do While Range("A:A").Find("ITEM-NO").Offset(d + 1, 0).End(xlUp).Row + CLng(0)
PrMat(d) = Range("A:A").Find("ITEM-NO").Offset(d + 1, 0)
d = d + 1

我认为这是不可能的,但即使是我的想法失败的一些验证也会很棒。

1 个答案:

答案 0 :(得分:1)

使用与Is it possible to fill an array with row numbers which match a certain criteria without looping?相同的技术,您可以形成非空白的一维数组

`form the array
x = Filter(Application.Transpose(Application.Evaluate("=IF(LEN(A1:A100)>0,A1:A100,""x"")")), "x", False)
`return a 1D string
MsgBox Join(x, ",")