Board logo

標題: 命令按鈕當中,如何能將Sheet1複製到Sheet2 [打印本頁]

作者: openpc    時間: 2012-2-16 15:43     標題: 命令按鈕當中,如何能將Sheet1複製到Sheet2

命令按鈕當中,如何能將Sheet1複製到Sheet2, 以下寫法會出現錯誤, 該怎麼寫才好?

Private Sub CommandButton1_Click()

    Sheets("Sheet1").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Sheets("Sheet1").Select
    Range("A11").Select
    ActiveSheet.Paste
   
End Sub
作者: GBKEE    時間: 2012-2-16 16:44

本帖最後由 GBKEE 於 2012-2-16 16:46 編輯

回復 1# openpc
  1. Private Sub CommandButton1_Click()
  2.     Sheets("Sheet1").Select
  3.     Range("A1").Select
  4.     Range(Selection, Selection.End(xlToRight).End(xlDown)).Select
  5.     Selection.Copy
  6.     Sheets("Sheet1").Select  
  7.     '   Sheets("Sheet2").Select   '<-複製到Sheet2
  8.     Range("A11").Select
  9.     ActiveSheet.Paste
  10. End Sub
複製代碼

作者: openpc    時間: 2012-2-17 15:36

Private Sub CommandButton1_Click()

    Sheets("Sheet1").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Sheets("Sheet2").Select  '==>感謝指正錯誤
    Range("A11").Select
    ActiveSheet.Paste
End Sub
可是, 我是在CommandButton1_Click()的情況下執行會有,
執行階段錯誤'1004'
Class Range 的Select方法失敗

請教先進,如何解.
作者: GBKEE    時間: 2012-2-17 15:51

回復 3# openpc
請多參考    新手 VBA 入門常見問題
你修改程式 放在ThisWorkbook 或一般組 是不會有錯誤的
如程式碼在Sheet1 須改成
  1. Private Sub CommandButton1_Click()
  2.     Sheets("Sheet1").Select
  3.     Range("A1").Select
  4.     Range(Selection, Selection.End(xlToRight).End(xlDown)).Select
  5.     Selection.Copy
  6.     'Sheets("Sheet1").Select
  7.      With Sheets("Sheet2")
  8.         .Select   '<-複製到Sheet2
  9.         .Range("A11").Select
  10.     End With
  11.     ActiveSheet.Paste
  12. End Sub
複製代碼

作者: openpc    時間: 2012-2-17 16:24

多謝指點, 我會多多參考新手 VBA 入門常見問題.

請教先進,
如程式碼在Sheet3
3#的02.Sheets("Sheet1").Select, 要如何修改
作者: GBKEE    時間: 2012-2-17 16:43

回復 5# openpc
二程式效果一樣
  1. Option Explicit
  2. Private Sub CommandButton1_Click()
  3.     With Sheets("Sheet1")
  4.         .Range("A1", .Range("A1").End(xlToRight).End(xlDown)).Copy Range("A11")
  5.         ' Range ("A11") :  程式碼在Sheet3  就是Sheet3的Range ("A11")
  6.     End With
  7. End Sub
  8. Private Sub Ex()  '有指定工作表 放何處都可以
  9.        ' Sheets("Sheet1").Range("A1", Sheets("Sheet1").Range("A1").End(xlToRight).End(xlDown)).Copy  Sheet3.Range("A11")
  10.       '   上式程式碼等同 以下程式碼
  11.     With Sheets("Sheet1")
  12.         .Range("A1", .Range("A1").End(xlToRight).End(xlDown)).Copy Sheet3.Range("A11")
  13.     End With
  14. End Sub
複製代碼

作者: Hsieh    時間: 2012-2-17 17:02

回復 5# openpc

不是將Sheet1的內容複製到Sheet2的A11嗎?
只要在這個活頁簿任何程序中執行下列語句就是了
  Sheets("Sheet1").Range("A1").CurrentRegion.Copy Sheets("Sheet2").Range("A11")
作者: openpc    時間: 2012-2-20 17:24

請教只要Range("A1"到"A10"),   使用Sheets("Sheet1").Range("A1").CurrentRegion.Copy Sheets("Sheet2").Range("A11")的模式該如何表達, 感謝再感謝!
作者: register313    時間: 2012-2-20 17:37

回復 8# openpc

Sheets("Sheet1").Range("A1:A10").Copy Sheets("Sheet2").Range("A11")

Sheets("Sheet1").Range("A1", "A10").Copy Sheets("Sheet2").Range("A11")

Sheets("Sheet1").Range("A1").Resize(10, 1).Copy Sheets("Sheet2").Range("A11")

全部貼上




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