標題:
同樣是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/)