【问题标题】:How to use cell value in a macro to copy a range of data to new worksheet如何在宏中使用单元格值将一系列数据复制到新工作表
【发布时间】:2016-08-05 00:59:52
【问题描述】:

我已经在谷歌上搜索了一段时间,但无法找到解决方案,希望有人能提供帮助。

我正在尝试将数据范围从一个工作表 (Sheet1) 复制到新工作表 (Sheet2),范围的开头始终保持不变(A 列,单元格 3),但行会根据输入而变化数据。我需要这个宏,以便可以将其分配给按钮。

例如:我需要将所有数据从 A1 复制到 E3 到新工作表,但下一次输入更多数据时范围可能从 A1 到 E4。列将始终保持不变(A 和 E),但行每次都会不同。

请帮忙

当前代码

Sub CopyItOver()

Dim lastRow As Long
Dim CellNum As String

RowLetter = "U"
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Worksheets("data").Range("$H$1").Value = lastRow
CellNum = RowLetter & lastRow
Worksheets("data").Range("$H$2").Value = CellNum

Set NewBook = Workbooks.Add
Workbooks("template.xlsm").Worksheets("data").Range("A3:cellnum").Copy
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues) Range("R:R").NumberFormat = "dd-mm-yyyy;@"

End Sub

【问题讨论】:

  • 显示你的代码。
  • Sub CopyItOver() Dim lastRow As Long Dim CellNum As String RowLetter = "U" lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row Worksheets("data ").Range("$H$1").Value = lastRow CellNum = RowLetter & lastRow Worksheets("data").Range("$H$2").Value = CellNum Set NewBook = Workbooks.Add Workbooks("template. xlsm").Worksheets("data").Range("A3:cellnum").Copy NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues) Range("R:R")。 NumberFormat = "dd-mm-yyyy;@"End Sub
  • 是否可以将整个列从A复制到E?
  • 请编辑您的问题并将代码放入问题中,而不是评论。您可能想四处看看,以了解这里的工作方式。
  • 对不起,可能我描述的不正确,我需要来自 A1:E3 的所有数据,取决于输入的数据,有时会有更多或更少的行,所以它可能会更改为 A1:E4 ,5,6,7...

标签: excel vba


【解决方案1】:

我正在尝试将一系列数据从一个工作表 (Sheet1) 复制到一个新工作表 (Sheet2)...

试试这个

Sub CopyPaste1()
Sheets("Sheet2").Cells.Clear
LastRowColumnE = Cells(Rows.Count, "E").End(xlUp).Row
Worksheets("Sheet1").Range("A1:E" & LastRowColumnE).Copy Destination:=Worksheets("Sheet2").Range("A1")
End Sub

或者,

Sub CopyPaste2()
Sheets("Sheet2").Cells.Clear
LastRowColumnE = Cells(Rows.Count, 5).End(xlUp).Row
Sheets("Sheet1").Range(Cells(1, 1), Cells(LastRowColumnE, 5)).Copy Destination:=Sheets("Sheet2").Cells(1, 1)
End Sub

或者

Sub CopyPaste3()
Sheets("Sheet1").Columns("A:E").Copy Destination:=Sheets("Sheet2").Columns(1)
End Sub

【讨论】:

  • 感谢您的回复,代码有效。这为我节省了很多时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多