返回列表 上一主題 發帖

同樣是Copy Paste, 有何不同 ?

同樣是Copy Paste, 有何不同 ?

各位高手好,

請問一下, 如下兩個Copy Paste的方式, 有甚麼不同呢 ?

Sub CopyPaste01 ()
Range ("A1").Copy
Worksheets(1).Paste Range("B1")
Application.CutCopyMode = False
End Sub

Sub CopyPaste02 ()
Range ("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

煩請賜教.

第2個SUB是只抄數值,
例如, 在A1 方上公式 "=C1"
CopyPaste01 後, B1會成 "=D1"
COPYPASTE02 後,B1會變成C1的值
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

回復 2# kimbal

感謝kimbal回覆,

請問另一個問題:
01 Range("A1:A3").Copy
02 Range("B1").PasteSpecial xlPasteValues
分別在A1 ~ A3各有一個運算式的值, 所以直接複製到B3時, 就會直接變成複製到B1 ~ B3

之前有看到謝大的方式可以縮短程式, 如下:
Sheets(1).Range("B1") = Sheets(1).Range("A1")

所以我試了:
Sheets(1).Range("B1:B3") = Sheets(1).Range("A1:A3")
結果都沒有動作.

請問要如和Copy Paste超過一個儲存格的資料呢 ?
謝謝.

TOP

回復 3# skybbs

加上.value就可以了
    Range("A1:A3").Value = Range("B1:B3").Value
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

本帖最後由 skybbs 於 2011-1-23 23:45 編輯

回復 4# kimbal

剛剛有試了,

必須還是要寫兩行才可以, 如下:
Range("A1:A3").Copy
Range("B1:B3").Value = Range("A1:A3").Value
如果單純只寫:
Range("B1:B3").Value = Range("A1:A3").Value
好像並不會將A1 - A3的值複製到B1 - B3. 對嗎 ?

TOP

本帖最後由 hugh0620 於 2011-1-24 12:26 編輯

回復 5# skybbs

    這樣一行就可以了~
    Range("B1:B3") = Range("A1:A3").Value
   
   上面的大大~ 其實是對的~ 只是位置上打錯~ 導致你執行後~ 結果錯誤
   Range("A1:A3").Value = Range("B1:B3").Value
    改成
   Range("B1:B3").Value = Range("A1:A3").Value

    其實你的寫法應該是用錄製巨集的方式去修改及發問問題的   
   試著將下面四行分別去執行,只有第一二行是可以的,第三四行沒有任何改變
   這樣你就可以清楚的了解要在哪加value
  Range("B1:B3").Value = Range("A1:A3").Value
   Range("B1:B3") = Range("A1:A3").Value
   Range("B1:B3") = Range("A1:A3")
   Range("B1:B3").Value = Range("A1:A3")
學習才能提升自己

TOP

回復 6# hugh0620

剛剛再試一次, 已經可以可. 請問:
Range("B1:B3").Value = Range("A1:A3").Value
Range("B1:B3") = Range("A1:A3").Value

有加上Value與沒有加上Value在甚麼狀況下會有不同 ?
謝謝.

TOP

回復 7# skybbs


    這個問題~ 留待大大回覆~ 我怕自己解釋錯誤~ 造成你的誤解~
學習才能提升自己

TOP

感謝 HUGH 兄的幫忙,
這個小弟也沒有詳細研究

基本上只要右方有VALUE就可行

估計是當右方有VALUE時,值就會化成ARRAY,
RANGE=ARRAY或RANGE.VALUE=ARRAY時,就會按次序放上值
但RANGE=RANGE就不行
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題