2017-05-26 219 views
0

我正在嘗試編寫一個從一個工作表複製特定單元格並將其粘貼到另一個工作表中的Excel宏。不幸的是,代碼無法正常工作,我看不出錯誤的位置。以下是我有:複製列中的特定單元格並粘貼到另一個工作表

Sub sbCopyRangeToAnotherSheet() 

Range("A1").Select 
Selection.Copy 
Sheets("Sheet1").Select 
lMaxRows = Cells(Rows.Count, "B").End(xlUp).Row 
Range("B" & lMaxRows + 1).Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Sheets("Sheet2").Select 
Range("A1").Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 

End 

它試圖遵循這個僞代碼:

如果 在工作表中的一行中有一些它的第一個單元格,是空白的休息,該編號複製和粘貼它進入第二張單元格A1。

其他 向下移動一個單元格,並再次檢查

我分配到一個按鈕,並運行時,我點擊它。我在「Selection.PasteSpecial ....」一行中得到一個調試錯誤。

我沒有編程經驗,這是我的第一次嘗試。谷歌搜索這個主題已經導致我的網站,我的工作計算機已被阻止出於某種原因。

謝謝!

回答

0

您正在收到該錯誤,因爲在粘貼時剪貼板將變空。

我的建議。避免使用。選擇。定義你的對象並與它們一起工作。您可能希望看到這個鏈接

How to avoid using Select in Excel VBA macros

一旦聲明你的對象,將要粘貼之前的副本線。

或者寫這樣的事情

lMaxRows = Sheets("Sheet1").Range("B" & _ 
      Sheets("Sheet1").Rows.Count).End(xlUp).Row + 1 

Sheets("Blah Blah").Range("A1").Copy 

Sheets("Sheet1").Range("B" & lMaxRows).PasteSpecial _ 
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
:=False, Transpose:=False 
相關問題