[问题] vba copy 改成 =

楼主: waiter337 (给开司一罐苏格登)   2016-10-09 09:11:26
(若是和其他不同软件互动之问题 请记得一并填写)
软件:
版本:
小弟遇到一个复制资料的问题
在录制宏上时常会用
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有出现一些字,其他全部空白
但也不晓得发生什么问题了
我有试着干脆改用循环一点一点填入,但时间超级久,好像不太好
我该试着用什么方式会比较恰当呢?
作者: soyoso (我是耀宗)   2016-10-09 09:27:00
如只要复制储存格值,另想到的是以变量(类型variant或省略),指定范围,再以range.resize = 变量方式填入如回文所述另如回文提到的range = range.value则可省略要读入变量的步骤如range("f1:i10") = range("a1:d10").value执行结果为 http://imgur.com/eRnjDD8如栏列数为变量,则加上range.resize调整
楼主: waiter337 (给开司一罐苏格登)   2016-10-09 10:34:00
感谢s大

Links booklink

Contact Us: admin [ a t ] ucptt.com