我正在尝试从名为“Dividends”的电子表格中复制A列中的数据并粘贴到名为“草稿”的电子表格中,但是出现了错误。我的代码看起来像这样:
Sub copy_2()
Sheets("Dividends").Range("A").Copy
Sheets("Draft").Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
答案 0 :(得分:0)
Sub copy_2()
Sheets("Dividends").Range("A:A").Copy
Sheets("Draft").Paste
Application.CutCopyMode = False
End Sub
尽可能删除对Active
的引用有助于消除混淆。
答案 1 :(得分:0)
您也不需要复制/粘贴 - 您只需将范围设置为相等。
Sub copy()
Dim lastRow As Integer
'This will let us know the last used row in column A
lastRow = Sheets("Dividends").Cells(1, 1).End(xlDown).row
Sheets("Draft").Range(Sheets("Draft").Cells(1, 1), Sheets("Draft").Cells(lastRow, 1)).Value = Sheets("Dividends").Range(Sheets("Dividends").Cells(1, 1), Sheets("Dividends").Cells(lastRow, 1)).Value
End Sub
或者您可以复制/粘贴:
Sub copy()
Dim lastRow As Integer
'This will let us know the last used row in column A
lastRow = Sheets("Dividends").Cells(1, 1).End(xlDown).row
Sheets("Dividends").Range(Sheets("Dividends").Cells(1, 1), Sheets("Dividends").Cells(lastRow, 1)).copy _
Destination:=Sheets("Draft").Range(Sheets("Draft").Cells(1, 1), Sheets("Draft").Cells(lastRow, 1))
Application.CutCopyMode = False
End Sub
注意:如果A列中的任何位置有间隙,则lastRow整数可能会关闭。如果要一直复制到最后使用的行,请替换" lastRow ="有了这个:
lastRow = Sheets("Dividends").UsedRange.Rows.Count
答案 2 :(得分:0)
这有效,
Sheets("Dividends").Range("A:A").Copy Sheets("Draft").Range("A1")