[算表] VBA 贴出ARRAY指定区间 已解决

楼主: cislomon (c slomon)   2019-07-30 15:03:12
软件:Excel
版本:2016
各为大家好
现在我有个状况是这样
查了两天还是不知道该怎么办
我在VBA内有个不小的阵列
先假设是9x10000的阵列好了
Dim FF(1 to 9, 1 to 10000) As Variant
那我只想要把 FF(6~9, 10~10000)的内容贴出来
贴到 Range("A1:D9990")的区间上
有没有办法
在不创造新的阵列的情况下
直接将FF()的指定区间给贴出来呢?
请求各位大大帮忙解惑~~~
已解决
Range("A1:D9990") = Application.Index(FF, [row(11:10000)], [Column(f:i)])
以上可正确贴出指定阵列范围
如果要用可变范围的话
可以先
Dim i as Integer, j as Integer
i=11
j=10000
Range("A1:D9990") = Application.Index(FF, Evaluate("row(" & i & ":" _
& j & ")"), [Column(f:i)])
以上可贴出可变的动态区间
另外同理
Application.WorksheetFunction.Sum(Application.Index _
(FF, [row(11:10000)], [Column(f:i)]))
可以将阵列内指定范围做加总
感谢soyoso大大热心的指导~
作者: soyoso (我是耀宗)   2019-07-30 15:49:00
application.index配合[column(f:i)]和[row(10:10000)]
楼主: cislomon (c slomon)   2019-07-31 12:56:00
感谢s大~~ 原来我vba里面是打成colunmn...已解决~不好意思还要您帮忙抓错字...晚点回把这文章编排好^^
作者: soyoso (我是耀宗)   2019-07-31 18:31:00
内文变量是FF但index内却是FT,有用transpose吗?因为以内文FF宣告的二维方式,测试是无法正确回传资料,会出现错误值#ref,需column在前。但transpose后可以row在前但因没有说明变量FF和FT的关系,这方面是否说明一下
楼主: cislomon (c slomon)   2019-07-31 22:12:00
FF就是FT我后来手误打错,这边都没有用transpose不过我试起来,好像都是row要在前面@@
作者: soyoso (我是耀宗)   2019-07-31 22:23:00
在我这里测试,是column在前,所以回文也才一直是这样回的原po可以正常使用即可
楼主: cislomon (c slomon)   2019-08-01 23:19:00
可以正常使用唷~ 不过想再延伸问一下[row(11:10000)]里面的 11:10000 想换成变量,该怎么写才对... 我用 [row(i1:i2)]这类的写法是不行的QQ
作者: soyoso (我是耀宗)   2019-08-01 23:21:00
[]改以evaluate(...)括号内可用变量连接&
楼主: cislomon (c slomon)   2019-08-06 14:16:00
我又有新的问题了@@ column这边该如何换成变量比较好呢?
作者: soyoso (我是耀宗)   2019-08-06 16:49:00
一样,以evaluate(..)括号内可用变量连接就看,带入如果是数字的话chr转为英文字母
楼主: cislomon (c slomon)   2019-08-08 23:17:00
非常感谢s大~

Links booklink

Contact Us: admin [ a t ] ucptt.com