首页 > 解决方案 > 如何使用 VBA 从各个列中选择和复制数据并将它们堆叠粘贴到一列中?

问题描述

我是一个使用 excel VBA 的完整菜鸟,所以希望你们中的一个可以帮助我。基本上我想做的就是编写一个 VBA 代码来选择和复制带有标题“日期”的所有日期数据,并将它们堆叠粘贴在一列中。将来会有更多基金的价值和日期数据要添加,因此日期数据列可能不固定(例如,如果我在 A 列中插入新基金的数据,则 A 列下的当前日期数据可能会发生变化到 C 列,但标题“日期”、“FundX 值”将始终存在)。到目前为止我得到的当前代码是不可扩展的——我必须清楚地定义包含日期数据的数组 (1,4,8),但就像我说的,随着要添加的更多数据,数组可能会改变。有没有办法让它动态和可扩展?

非常感谢!

Sub test()
Dim r%, i%
Dim arr, brr
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Worksheets("sheet1")
For Each j In Array(1, 4, 8)
  r = .Cells(.Rows.Count, j).End(xlUp).Row
  arr = .Cells(2, j).Resize(r - 1, 1)
  For i = 1 To UBound(arr)
    d(arr(i, 1)) = Empty
  Next
Next
.Range("k2:k" & .Rows.Count).Clear
.Range("k2").Resize(d.Count, 1) = Application.Transpose(d.keys)
End With
End Sub

标签: excelvba

解决方案


推荐阅读