我是VB的新手,我被告知要在excel中创建一个宏,这将转到另一个excel文件,过滤一些具有特定值的行,并使用thos值制作一些%,并将结果保存在另一页。
我做了一个For循环,我认为这将解决我的问题,但我不认为它有效。这就是我所拥有的:(我没有包括访问其他文件的部分)
Dim exemplo(1, 17) As Integer
For x = linha_inicial To linha_final
If Cells(x, 3) = filtro_1 And Cells(x, 4) = filtro_2 Then
exemplo(exemplo.Length - 1) = Row(x) ' this is if it was 1 dimention array
exemplo(x) = Row(x) '? I have no idea what to do here
ReDim Preserve exemplo(exemplo.Length + 1) ' same applies to here
Next x
你能看到那里,我做了1维数组的循环,但我仍然不明白一些事情: 首先,如果我找到了具有我想要的行,我如何获取整行并将其保存在二维数组中(我知道coloms总是17,所以我猜它会是这样的(Row(x) ,17),但是这样它会将entrie行保存在17位(ps我也不知道如何获得整行))
其次,我如何重新编写一个二维数组,从我的搜索中我只找到了如何为一维数组做到这一点。
嗯,我想我需要了解所有我理解和完善我的项目。 无论如何,谢谢!
答案 0 :(得分:1)
为什么你想要整行,包括巨大的虚空部分?无论如何
a=rows(w).value2
但您可能想要使用:
a = Intersect(Rows(w), ActiveSheet.UsedRange).Value2
要更改最后一个维度的大小,请使用:
Redim preserve a(0 to 3, 0 to 42)
对于其他人,您必须逐项复制