作者cislomon (c slomon)
看板Office
标题[算表] VBA 贴出ARRAY指定区间 已解决
时间Tue Jul 30 15:03:12 2019
软体: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大大热心的指导~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.26.62.195 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1564470194.A.78C.html
1F:→ soyoso: application.index配合[column(f:i)]和[row(10:10000)] 07/30 15:49
2F:→ soyoso: 另外10~10000以a1:d9990无法正确显示的 07/30 15:51
3F:→ soyoso: 10~10000是9991笔资料 07/30 15:51
soyoso大大您好!
我尝试写了以下语法
Range("A1:D9990") = Application.WorksheetFunction.Index(FT(), _
[row(11:10000)], [column(f:i)])
但VBA运行结果是显示 "型态不符合"
可以再麻烦s大稍微提点一下吗...
4F:→ soyoso: application.index(ft,[column(...)],[row(...)]) 07/31 11:15
原来没有WorksheetFunction
刚刚我试了这个语法
Range("A1:D9990") = Application.Index(ft, [row(11:10000)], 6)
可以在储存格A1:D9990
全部都贴上ft内第六直排的资料
但是如果改成
Range("A1:D9990") = Application.Index(ft, [colunm(f:i), [row(11:10000)
或是
Range("A1:D9990") = Application.Index(ft, [row(11:10000], [colunm(f:i)])
储存格则是全部都变成 #NAME?
f:i 换成 6:9 也是 #NAME?
求救~~~~
5F:→ soyoso: 不是回文写的[row(11:10000],是[row(11:10000)] 07/31 12:11
6F:→ soyoso: column方面也是,[column(f:i),不正确,是[column(f:i)] 07/31 12:12
7F:→ soyoso: 上面的部分会回传错误#value;会回传错误#name?是因为 07/31 12:18
8F:→ soyoso: 回文colunm并不正确,是column 07/31 12:19
9F:→ cislomon: 感谢s大~~ 原来我vba里面是打成colunmn...已解决~ 07/31 12:56
10F:→ cislomon: 不好意思还要您帮忙抓错字...晚点回把这文章编排好^^ 07/31 12:57
11F:→ soyoso: 内文变数是FF但index内却是FT,有用transpose吗? 07/31 18:31
12F:→ soyoso: 因为以内文FF宣告的二维方式,测试是无法正确回传资料, 07/31 18:33
13F:→ soyoso: 会出现错误值#ref,需column在前。 07/31 18:34
14F:→ soyoso: 但transpose後可以row在前 07/31 18:35
15F:→ soyoso: 但因没有说明变数FF和FT的关系,这方面是否说明一下 07/31 18:36
16F:→ cislomon: FF就是FT我後来手误打错,这边都没有用transpose 07/31 22:12
17F:→ cislomon: 不过我试起来,好像都是row要在前面@@ 07/31 22:13
18F:→ soyoso: 在我这里测试,是column在前,所以回文也才一直是这样回的 07/31 22:23
19F:→ soyoso: 原po可以正常使用即可 07/31 22:24
20F:→ cislomon: 可以正常使用唷~ 不过想再延伸问一下 08/01 23:19
21F:→ cislomon: [row(11:10000)]里面的 11:10000 想换成变数,该怎麽写 08/01 23:19
22F:→ cislomon: 才对... 我用 [row(i1:i2)]这类的写法是不行的QQ 08/01 23:20
23F:→ soyoso: []改以evaluate(...)括号内可用变数连接& 08/01 23:21
※ 编辑: cislomon (27.52.62.21 台湾), 08/06/2019 14:15:23
24F:→ cislomon: 我又有新的问题了@@ column这边该如何换成变数比较好呢? 08/06 14:16
25F:→ soyoso: 一样,以evaluate(..)括号内可用变数连接 08/06 16:49
26F:→ soyoso: 就看,带入如果是数字的话chr转为英文字母 08/06 16:49
27F:→ cislomon: 非常感谢s大~ 08/08 23:17