【发布时间】:2017-06-25 04:06:10
【问题描述】:
如何附加两个具有相同维度的动态数组,然后按这些值的升序对其进行排序?
例如,
Dim a as Variant
a = sheets(1).range("B" & firstRow & ":B" & lastRow)
Dim b as Variant
b = sheets(1).range("C" & firstRow & ":C" & lastRow)
firstRow 和 lastRow 已正确定义。
我的问题是如何在数组 a 之后附加数组 b。让我们假设 a = (8,3,5) 和 b = (1,7,2)。数组 c 必须是 (8,3,5,1,7,2)。我尝试了以下但没有成功。谁能解释为什么它不起作用?
Dim c as variant
c = Join(b, Join(a, ","))
要对数组c中引入的值进行排序,我必须创建一个函数还是只能在一个操作中完成?
谢谢
最新版本
我已经改成如下代码:
Dim aArray() As variant
aArray = aRange
Dim bArray() As Variant
bArray = bRange
Dim cArray() As Variant
cArray = aArray
Dim i As Integer
For i = 1 To UBound(coutArray)
ReDim Preserve cArray(UBound(aArray)+1) As Variant
cArray(i + UBound(aArray),1) = bArray(i,1)
Next i
我试图将 cArray() 附加到 aArray 的末尾,这两个数组将在 cArray() 中引入。为什么这不起作用?我想了解。
我也尝试创建一个函数 (How do I Merge two Arrays in VBA?),但是我将如何调用一个过程?效果不太好。
谢谢!
【问题讨论】:
标签: arrays vba dynamic append concatenation