msww.net
当前位置:首页 >> vBA二维数组转置 >>

vBA二维数组转置

Private Sub Command1_Click() Dim a(1, 2) As Integer Dim b(2, 1) As Integer Dim i As Integer Dim j As Integer For i = 0 To 1 For j = 0 To 2 a(i, j) = i * 3 + j Print a(i, j); Next Print Next Print Trans a, 2, 3, b For i = 0 To 2 For j = 0 To 1 Print b(i

Option ExplicitOption Base 1Dim a(4, 4) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerPicture1.ClsRandomizeFor i = 1 To 4 For j = 1 To 4 a(i, j) = Int(Rnd * 9) + 1 Picture1.Print a(i, j); Next j Picture1.PrintNext iEnd

:一维转二维.MsgBox arr1(2, 1) '转换后的数组是1列多行的二维数组 End Sub 2、二维数组转一维.arr3 = Application.transpose(Application.Index(arr2, , 2)) '取得arr2第2列数据并转置成1维数组 MsgBox arr3(2,)

好复杂……你想要干什么?把ckarr直接填充到A20后,还是装置一下在填充?Sub BBB()Dim ckarr() As String, ckarr1() As String, E As IntegerE = 5ReDim ckarr(1 To 16, 5 To E) As Stringckarr(1, 5) = 999'ckarr(2, 6) = 999111'MsgBox UBound(

可以用Resize来实现,示例如下:arr=range("A1:Z1")'将第一行,A到Z列,赋值给数组arrrange("A2").resize(ubound(arr),1)=application.transpose(arr)'将数组Arr转置后,赋予A2开始的A列中.关于Resize属性:调整指定区域的大小.返回

所谓矩阵的转置,通俗地讲,就是把矩阵的行变成列,列变成行.在EXCEL里也有这个功能,选中一个矩形数据区域,复制 -- 选择性粘贴,就可以勾选“转置”,进行相关操作.

vb,vba等在二维数组声明时,都不能直接赋值.对于excel 有种方法可以得到一个二维数组,并简单的赋值,对于如 arrA= range("A1:B12").value

公式一般比vba快,因为vba是解释执行的.你公式慢的因为是有些写法不合适,建议: 1.增加辅助列,第一列写c1=d1,,,c:c=c1,,,实际上应该怎么写,你调整下 2.不要整列的用数组公式,你这个c:c=c1,有效数有多长就写多长,适当多一点没关系,但整列,当然就慢的厉害了,改为c1:c1000=c1会极大的改改善公式速度.c:c=c1在数组公式中,大约是从c1c65536单元格,逐一跟c:c比较,在2003下是65536*65536次运算,在07下去运算一次,1048576*1048576次计算比较,10分钟才算完,不慢了,呵呵 完善下公式就ok,不用写什么vba

假定数组为arr,如果是一维数组,直接用application.transpose函数即可,如果arr是二维数组.如下即可:range("a1:a10000") = application.transpose(application.index(arr, 1))

假定数组为Arr,如果是一维数组,直接用Application.Transpose函数即可,如果Arr是二维数组.如下即可:Range("A1:A10000") = Application.Transpose(Application.Index(Arr, 1))

网站首页 | 网站地图
All rights reserved Powered by www.msww.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com