Board logo

標題: 同樣是Copy Paste, 有何不同 ? [打印本頁]

作者: skybbs    時間: 2011-1-21 20:46     標題: 同樣是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

煩請賜教.
作者: kimbal    時間: 2011-1-21 21:46

第2個SUB是只抄數值,
例如, 在A1 方上公式 "=C1"
CopyPaste01 後, B1會成 "=D1"
COPYPASTE02 後,B1會變成C1的值
作者: skybbs    時間: 2011-1-21 23:33

回復 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超過一個儲存格的資料呢 ?
謝謝.
作者: kimbal    時間: 2011-1-23 21:06

回復 3# skybbs

加上.value就可以了
    Range("A1:A3").Value = Range("B1:B3").Value
作者: skybbs    時間: 2011-1-23 23:35

本帖最後由 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. 對嗎 ?
作者: hugh0620    時間: 2011-1-24 12:02

本帖最後由 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")
作者: skybbs    時間: 2011-1-24 13:14

回復 6# hugh0620

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

有加上Value與沒有加上Value在甚麼狀況下會有不同 ?
謝謝.
作者: hugh0620    時間: 2011-1-24 13:36

回復 7# skybbs


    這個問題~ 留待大大回覆~ 我怕自己解釋錯誤~ 造成你的誤解~
作者: kimbal    時間: 2011-1-26 00:32

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

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

估計是當右方有VALUE時,值就會化成ARRAY,
RANGE=ARRAY或RANGE.VALUE=ARRAY時,就會按次序放上值
但RANGE=RANGE就不行




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)