如何添加两个具有相同维度的动态数组,然后按这些值的升序对其进行排序?
例如,
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
我试图在aArray的末尾附加cArray(),其中这两个数组将在cArray()中引入。为什么这不起作用?我想了解。
我也尝试过创建一个函数(How do I Merge two Arrays in VBA?),然后我将如何调用一个过程?它运作不佳。
谢谢!
答案 0 :(得分:0)
是否要追加数组或excel范围?
a和b仅在您的样本中包含Excel Range对象。不是数组。
无论如何:这是一篇关于加入数组的好文章:How do I Merge two Arrays in VBA?
这里有一篇关于排序的文章: VBA array sort function?