作者waiter337 (给开司一罐苏格登)
看板Office
标题[问题] vba copy 改成 =
时间Sun Oct 9 09:11:26 2016
(若是和其他不同软体互动之问题 请记得一并填写)
软体:
版本:
小弟遇到一个复制资料的问题
在录制巨集上时常会用
select
Selection.Copy
Selection.PasteSpecial Paste:
之类的语法
我想缩短这种语法
开始改成类似这样的写法
Sheets(2).Range("A1") = Sheets(1).Range("A1")
不过小弟访问的资料是多个储存格范围(是连在一起的,长或方)
网路上也有教范围的复制
Sheets(2).Range("A1") = Sheets(1).Range("A1:P1")
但很诡异的状况
不晓得是否为范围列过大,或者数字太多,
我逐行测试时,资料一直没有出现
i= 15xxx ,j = 16xxx
Sheets("运算").Range("A1") = _
Sheets("员工分析").Range("A" & j & ":" & "aa" & i - 1)
可运行
"员工分析"表中确实有资料
运行後
"运算"表中 完全无资料,或者a1有出现一些字,其他全部空白
但也不晓得发生什麽问题了
我有试着乾脆改用回圈一点一点填入,但时间超级久,好像不太好
我该试着用什麽方式会比较恰当呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.158.244
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1475975489.A.526.html
1F:→ soyoso: 如只要复制储存格值,另想到的是以变数(类型variant或省略 10/09 09:27
2F:→ soyoso: ),指定范围,再以range.resize = 变数方式填入 10/09 09:28
感谢s大
我刚也发现原来要贴上的大小,要等於复制的储存格大小
那我们平常滑鼠复制贴上
他会自动贴上原本的大小
也是跟s大说的range.resize的意思相同吗?
※ 编辑: waiter337 (114.35.158.244), 10/09/2016 09:35:42
我大概懂您的意思了
所以找出数据源的row跟col基本上是需要的
因为要贴上的地方(假设要排序)需要很准确的位置置入范围
如果没有row跟col,数值大小基本上都会过多或少於范围内,
引响顺序或其他资料
否则只能一格一格抓的意思
不过我先在测试一下好了
我好像.value 没打到
跟贴上范围没有太确定(感觉有试过提供相同大小的范围但失败)
※ 编辑: waiter337 (114.35.158.244), 10/09/2016 09:47:29
3F:→ soyoso: 如回文所述 10/09 09:47
4F:→ soyoso: 另如回文提到的range = range.value则可省略要读入变数的 10/09 09:52
5F:→ soyoso: 步骤 10/09 09:52
6F:→ soyoso: 如range("f1:i10") = range("a1:d10").value 10/09 09:54
8F:→ soyoso: 如栏列数为变数,则加上range.resize调整 10/09 09:57
9F:→ waiter337: 感谢s大 10/09 10:34
10F:→ waiter337: s大, 请问像这类的问题 常会遇到 型态不符合,错误13 10/11 16:46
11F:→ waiter337: 是否该 改dim arr() 或者dim double 10/11 16:46
12F:→ waiter337: 或者在sheets("xxx") 前面加cdbl 才能运行? 10/11 16:47
13F:→ waiter337: 因为改用= 之後 常常都会遇到此类状况 10/11 16:48
14F:→ waiter337: 後面大部份都是 选择范围 或者准备要贴上 之类的情况卡 10/11 16:49
15F:→ waiter337: 住 10/11 16:49
16F:→ waiter337: 用变数选范围之类的 10/11 16:49
17F:→ waiter337: 如 range("a" & "i" & ":" & "b" & "j").value 10/11 16:50
18F:→ waiter337: "i", "j" 为变数 10/11 16:50
19F:→ waiter337: 错了 =u= 10/11 16:51
20F:→ waiter337: sheets("xxx").range("a" & i & ":" & "b" & j).value 10/11 16:51
21F:→ waiter337: 应该是说 准备要访问时 ... 不过贴上有时後也会这样 10/11 16:53