Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2794|回复: 3

[已解决]如何给数组逐个赋值

[复制链接]
发表于 2013-9-21 13:22 | 显示全部楼层 |阅读模式
请问如下赋值为什么会出错,正确的应该怎么写

Sub test()
   Dim arr(1 To 15, 1 To 2) As Range
    Dim i, j, k, x

    For i = 1 To 5 Step 2
        For j = 1 To 5
        x = x + 1

        arr(x, 1) = Range(Cells(j, i)).Value
          arr(x, 2) = Range(Cells(j, i + 1)).Value
        Next j
        Next i

End Sub

最佳答案
2013-9-21 13:48
问题1,变量设置为range。。。赋值的是单元格的值。。。
问题2,range和cells重复使用了。。。
Sub test()
   Dim arr(1 To 15, 1 To 2)
    Dim i, j, k, x
    For i = 1 To 5 Step 2
        For j = 1 To 5
        x = x + 1

        arr(x, 1) = Cells(j, i).Value
          arr(x, 2) = Cells(j, i + 1).Value
        Next j
        Next i

End Sub
这样就可以了。。

数组赋值.rar

6.07 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-9-21 13:38 | 显示全部楼层
回复

使用道具 举报

发表于 2013-9-21 13:48 | 显示全部楼层
  1. Sub abc()
  2. Dim pp(1 To 15, 1 To 2)
  3. kk = Range("a1:f5").Value
  4. For j = 2 To UBound(kk, 2) Step 2
  5. For i = 1 To UBound(kk)
  6. pp(x + 1, 1) = kk(i, j - 1)
  7. pp(x + 1, 2) = kk(i, j)
  8. x = x + 1
  9. Next i, j
  10. End Sub
复制代码
楼主意思是要排成两列的

评分

参与人数 1 +3 收起 理由
cxloen + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-9-21 13:48 | 显示全部楼层    本楼为最佳答案   
问题1,变量设置为range。。。赋值的是单元格的值。。。
问题2,range和cells重复使用了。。。
Sub test()
   Dim arr(1 To 15, 1 To 2)
    Dim i, j, k, x
    For i = 1 To 5 Step 2
        For j = 1 To 5
        x = x + 1

        arr(x, 1) = Cells(j, i).Value
          arr(x, 2) = Cells(j, i + 1).Value
        Next j
        Next i

End Sub
这样就可以了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-27 00:31 , Processed in 0.137709 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表