Excel精英培训网

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

[已解决]不用循环可以增加二维数组

[复制链接]
发表于 2011-1-17 10:34 | 显示全部楼层 |阅读模式
5学分
希望可以实现不用循环,可以增加二维数组的开始部分,但数据不改变

如:arr=[B2:B5],则arr(i,1)数据顺序分别为(124,158,458,754)即:arr(1,1)=124

我希望arr是10行1列的数据,在前面增加空白的数据实现arr(1 to 10,1 to 1),arr(i,1)数据顺序分别为("","","","","",""",124,158,458,754),即arr(7,1)=124......

不知道这个想法可以实现不??
最佳答案
2011-1-17 11:00
一、用单元格间接转换
二、arr = Application.Transpose(Split(",,,,,," & Join(Application.Transpose([B2:B5]), ","), ","))

发表于 2011-1-17 10:52 | 显示全部楼层
不用循环做不到
用单元格间接转换可以。
回复

使用道具 举报

发表于 2011-1-17 10:57 | 显示全部楼层
不用循环可能不行。而且要用另外的数组名,二维数组的第一维不能用作动态数组,如果一定要用Arr,则需要转换。

评分

参与人数 1 +3 收起 理由
xdwy81129 + 3 谢谢关注问题。要是一维数组呢?

查看全部评分

回复

使用道具 举报

发表于 2011-1-17 11:00 | 显示全部楼层    本楼为最佳答案   
一、用单元格间接转换
二、arr = Application.Transpose(Split(",,,,,," & Join(Application.Transpose([B2:B5]), ","), ","))
回复

使用道具 举报

发表于 2011-1-17 11:02 | 显示全部楼层
为什么不用循环呢,如果一定要不用循环而数组不太大的情况下(如此例),可以有一个不太准确的代码:
  1. Sub test()
  2. Dim arr
  3. arr = [b2:b5]
  4. arr = Split(WorksheetFunction.Rept(",", 6) & Join(WorksheetFunction.Transpose(arr), ","), ",")
  5. Stop
  6. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
xdwy81129 + 1 谢谢关注问题

查看全部评分

回复

使用道具 举报

发表于 2011-1-17 11:06 | 显示全部楼层
哇,楼上的两位好厉害啊!!拿回去研究一下……
回复

使用道具 举报

 楼主| 发表于 2011-1-17 12:13 | 显示全部楼层
回复 snrvgbb 的帖子

为什么要限定数组不太大,还要注明是不太准确的代码呢??
回复

使用道具 举报

发表于 2011-1-17 12:35 | 显示全部楼层
本帖最后由 yuhe0008 于 2011-1-17 12:36 编辑

一维的数组可以实现

Sub test()
    Set T1 = CreateObject("ScriptControl")
        T1.Language = "JScript"
     s = "function sortarr(arr){return arr.toArray();}"
T1.AddCode s
    a = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
Set b = T1.codeobject.sortarr(a)

b.push ("123") '直接添加到数组末尾
MsgBox b

b.unshift ("456") '直接添加到数组开头
MsgBox b


b.pop '删除最后一个元素
MsgBox b

b.shift '删除最前一个元素
MsgBox b

b.splice 2, 3, "a", "b", "c" '直接替换数组
MsgBox b

End Sub

评分

参与人数 1 +2 收起 理由
xdwy81129 + 2 一维的增加,学习了,可以不理解代码含义

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-1-17 19:36 | 显示全部楼层
回复 yuhe0008 的帖子

谢谢赐教,不太能看懂代码,但可以把二维换成1维再添加。

谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 02:31 , Processed in 0.505598 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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