excel - 如何向数组添加不同的范围?
问题描述
我有一个数据集,其中包含源文件中不同范围的数据,我想将其组合成一个范围并复制/粘贴到目标文件中。虽然联合工作,但我需要在一百个工作表上运行它,而且联合/复制/粘贴花费的时间太长。我想看看我是否会通过转换为数组来提高性能。
我已经尝试通过使用联合来组合范围来这样做,但是我无法让数组在这样做时初始化为多于一列。不知道我做错了什么?
这是一个例子。
sub CopyData()
dim LastR as long
dim dataArr as variant
with SourceWS
LastR = .cells(.rows.count,1).end(xlup).row
dataArr = .union(.range("A8:A" & LastR), _
.range("C8:C" & LastR), _
.range("H8:H" & LastR))
end with
DestWS.range("A1").resize(ubound(dataArr,1), ubound(dataArr,2)) = dataArr
end sub
解决方案
我在另一个论坛上收到了一些帮助。以下完成了我正在尝试做的事情:
Sub CombineRanges()
Dim MyArr() As Variant
Dim MyRows as Variant
MyRows = Evaluate("ROW(1:20)")
MyArr = Application.Index(Columns("A:H"), MyRows, Array(1, 3, 8))
Range("Z1").Resize(UBound(MyArr, 1), UBound(MyArr, 2)).Value2 = MyArr
End Sub
推荐阅读
- c++ - 在 BAZEL 中,有没有办法防止依赖 C/C++ 标头传播到依赖库?
- vuetify.js - 如何在多个启用的 v-select 组件中预先选择选项?
- python - Python中的真假测验功能
- php - 调用未定义的方法 App\Mail\OrderPlaced::views()
- python - 随机值命令无法正常工作 - Python
- r - R list - 扩展向量元素以列出具有相同名称的元素
- python - Python中的自定义属性设置器/获取器
- git - Adding Container-Scanning to CI in GitLab
- java - MCP940 反编译.bat 错误
- amazon-web-services - list-objects-v2 with --query and --max-items