如何将一列从一个电子表格复制到另一个电子表格

时间:2015-04-16 18:59:32

标签: vba excel-vba excel

我正在尝试从名为“Dividends”的电子表格中复制A列中的数据并粘贴到名为“草稿”的电子表格中,但是出现了错误。我的代码看起来像这样:

Sub copy_2()
  Sheets("Dividends").Range("A").Copy
  Sheets("Draft").Activate
  Range("A1").Select
  ActiveSheet.Paste
  Application.CutCopyMode = False
End Sub

3 个答案:

答案 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")