【问题标题】:Appending data from one sheet to another Excel VBA将数据从一个工作表附加到另一个 Excel VBA
【发布时间】:2015-11-14 10:03:33
【问题描述】:

我知道一点 VBA,但是我遇到了一个问题,我正在尝试编写一个代码,该代码将复制 1 张表中的所有数据,将其附加/粘贴到表 2 中的下一个空白单元格中,然后从中删除数据表 1。我正在使用下面的代码,但我得到的单元格值被单词 TRUE 替换。

Sub Instal_Sum_Paste()

  ActiveWorkbook.Sheets("Vehicle working").Select

  Dim N As Long
  N = Cells(6, 2).End(xlDown).Row
  Set DT = Range("b6:G" & N)
  DT.Copy

  ActiveWorkbook.Sheets("Installation Summary").Select
  lMaxRows = Cells(Rows.Count, "B").End(xlUp).Row
  Range("B" & lMaxRows + 1).Select
  ActiveCell.Value = DT.PasteSpecial(xlPasteValues)

  ActiveWorkbook.Sheets("Vehicle working").Select
  DT.Select
  Selection.ClearContents

  MsgBox "done", vbOKOnly, "done"

End Sub

【问题讨论】:

  • 这里的这一行:ActiveCell.Value = DT.PasteSpecial(xlPasteValues) 没有达到您的预期。它实际上是将“DT”范围内的值粘贴到同一位置,然后将该操作的结果(即 TRUE)粘贴到活动单元格中。您想要做的是 ActiveCell.PasteSpecial (xlPasteValues) 将复制的范围粘贴到活动单元格。

标签: excel vba


【解决方案1】:

我设法找到了答案,我知道这很愚蠢:

 Sub Instal_Sum_Paste()

  ActiveWorkbook.Sheets("Vehicle working").Select

  Dim N As Long
  N = Cells(6, 2).End(xlDown).Row
  Set DT = Range("b6:G" & N)
  DT.Select
  Selection.Copy

  ActiveWorkbook.Sheets("Installation Summary").Select
  lMaxRows = Cells(Rows.Count, "B").End(xlUp).Row
  Range("B" & lMaxRows + 1).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone

  ActiveWorkbook.Sheets("Vehicle working").Select
  DT.Select
  Selection.ClearContents

  MsgBox "done", vbOKOnly, "done"

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 2018-07-22
    • 1970-01-01
    • 2017-02-26
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多