在VBA Excel中合并辑阵维数组 [英] merge mutli dimensional arrays in VBA excel

查看:402
本文介绍了在VBA Excel中合并辑阵维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个非常艰难的时间与REDIM功能和多维数组。我想两个多维数组合并成一个。我知道,每个阵列的第二维永远是2,但在第一维将发生变化。当我使用ReDim功能我没有得到一个错误信息,但它删除,这是摆在首位的第一阵列中的所有内容。当我使用REDIM preserve我得到一个下标越界。帮助。

 功能merge_arrays2(first_array为Variant,sec_array为Variant)为Variant昏暗我作为整数,J为整数,男作为整数M = UBound函数(sec_array)
J = UBound函数(first_array)使用ReDim first_array(M + J,2)对于i = 1到UBound函数(sec_array)
当J = J + 1个
first_array(J,1)= sec_array(I,1)
first_array(J,2)= sec_array(I,2)
下一个merge_arrays2 = first_array结束功能


解决方案

没关系。我解决了这个问题。

 暗淡我作为整数,J为整数,K为整数,third_array(),M为整数M = UBound函数(sec_array)
J = UBound函数(first_array)REDIM third_array(M + J,2)对于i = 1到UBound函数(first_array)
K = K + 1
third_array(K,1)= first_array(I,1)
third_array(K,2)= first_array(I,2)
下一个对于i = 1到UBound函数(sec_array)
K = K + 1
third_array(K,1)= sec_array(I,1)
third_array(K,2)= sec_array(I,2)
下一个merge_arrays2 = third_array

I have a very tough time with the redim function and the multi-dimensional arrays. I'm trying to merge two multi-dimensional arrays into one. I know that the second dimension of each array will always be 2, but the first dimension will change. When I use the redim function I do not get an error message but it erases everything that was in the first array in the first place. When I use redim preserve I get a subscript out of range. Help.

Function merge_arrays2(first_array As Variant, sec_array As Variant) As Variant

Dim i As Integer, j As Integer, m As Integer

m = UBound(sec_array)
j = UBound(first_array)

ReDim first_array(m + j, 2)

For i = 1 To UBound(sec_array)
j = j + 1
first_array(j, 1) = sec_array(i, 1)
first_array(j, 2) = sec_array(i, 2)
Next

merge_arrays2 = first_array

End Function

解决方案

Never mind. I solved the problem.

Dim i As Integer, j As Integer, k As Integer, third_array(), m As Integer

m = UBound(sec_array)
j = UBound(first_array)

ReDim third_array(m + j, 2)

For i = 1 To UBound(first_array)
k = k + 1
third_array(k, 1) = first_array(i, 1)
third_array(k, 2) = first_array(i, 2)
Next

For i = 1 To UBound(sec_array)
k = k + 1
third_array(k, 1) = sec_array(i, 1)
third_array(k, 2) = sec_array(i, 2)
Next

merge_arrays2 = third_array

这篇关于在VBA Excel中合并辑阵维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆