【问题标题】:delete element from variant in vba从vba中的变体中删除元素
【发布时间】:2017-02-16 21:19:31
【问题描述】:

我有一个包含源列表的变体

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

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

source = Range("A4:A5")

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

如何删除?

我试过 Erase source 清除所有内容

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

我怎样才能只保留第一个元素或删除最后一个元素?

【问题讨论】:

  • source 应该声明为Range,除非...你想达到什么目的?为什么要删除最后一行?请改进您的问题。
  • 如果我更改源的类型,我必须在很多地方进行更改所以我正在尝试快速修复,它将单独删除最后一个元素
  • 这和this thread有什么关系?

标签: vba excel


【解决方案1】:

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

使用.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

【讨论】:

  • 我想把它作为 source(1,1) = A(0) 是可能的
猜你喜欢
  • 2021-10-16
  • 2011-10-23
  • 2021-07-20
  • 2013-02-14
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
相关资源
最近更新 更多