从vba中的variant中删除元素

时间:2015-05-14 08:15:46

标签: excel vba excel-vba

我有一个包含源列表

的变体
Dim source as variant
source = Range("A4:A" & rowcount)

有时rowcount也是4,所以在这种情况下我将源重新分配给

source = Range("A4:A5")

现在我要删除最后一行source(2)/source(2,1)

如何删除它?

我尝试Erase source清除所有内容

我正在处理源中的数据并填充一些dict项 如果source不是数组,我必须在很多地方进行更改,因为我已经在很多地方使用了每个地方

如何单独使用第一个元素或删除最后一个元素?

1 个答案:

答案 0 :(得分:2)

您不能使用ReDim Preserve,因为即使只有一个单元格,您使用Range设置的变体也会是2D。

使用.Value.Value2获取正确的数组和缓冲区变量,以便在源代码中删除并传回数据:

Dim source as variant, A()
Redim A(0)

If rowcount<>4 Then
    source = Range("A4:A" & rowcount).Value
Else
    source = Range("A4:A5").Value
    A(0)=source(1,1)
    Redim source(1 To 1, 1 To 1)
    source(1,1)=A(0)
End if