[問題] 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