【问题标题】:To paste the data on the last row of data inputed?要将数据粘贴到输入的最后一行数据上?
【发布时间】:2020-03-17 23:05:28
【问题描述】:

我目前的代码可以正常工作并在复制 1 张工作表时粘贴正确的数据,但是我现在希望它从 3 张不同的工作表中提取数据,将下一张工作表下的每张工作表粘贴为一个大数据集。下面是我尝试使用的代码,但停在 .Range(LastRow)

Sub PipelineData()

Dim Fname As String
Dim SrcWbk As Workbook
Dim DestWbk As Workbook

Set DestWbk = ThisWorkbook

Fname = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Select a File")
If Fname = "False" Then Exit Sub
Set SrcWbk = Workbooks.Open(Fname)

On Error Resume Next

Sheets("BID").ShowAllData
Sheets("DELIVERY").ShowAllData
Sheets("Complete or Cancelled").ShowAllData

On Error GoTo 0

SrcWbk.Sheets("BID").Range("A3:AP200").Copy DestWbk.Sheets("Pipeline").Range("A1")

SrcWbk.Sheets("DELIVERY").Range("A3:AP200").Copy DestWbk.Sheets("Pipeline").Range(LastRow)

SrcWbk.Sheets("Complete or Cancelled").Range("A3:AP200").Copy DestWbk.Sheets("Pipeline").Range(LastRow)

SrcWbk.Close False

End Sub

【问题讨论】:

  • 你实际上需要find the last row
  • ^ 两次,因为下次使用时会覆盖数据。
  • DestWbk.Sheets("Pipeline").Range("A" & DestWbk.Sheets("Pipeline").Rows.Count).End(xlUp).Offset(1)
  • 如何将其添加到上面的代码中以使其工作?感谢大家的帮助
  • 我将上面的代码添加到第二行代码中,该代码正在提取第二和第三张数据,但我得到错误代码 438 - 对象不支持此属性或方法... ..顺便说一句,使用 Excel 2010

标签: excel vba copy paste


【解决方案1】:
Sub PipelineData()

Dim Fname As String
Dim SrcWbk As Workbook
Dim DestWbk As Workbook

Set DestWbk = ThisWorkbook

Fname = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Select a File")
If Fname = "False" Then Exit Sub
Set SrcWbk = Workbooks.Open(Fname)

On Error Resume Next

Sheets("BID").ShowAllData
Sheets("DELIVERY").ShowAllData
Sheets("Complete or Cancelled").ShowAllData

On Error GoTo 0

SrcWbk.Sheets("BID").Range("A3:AP200").Copy DestWbk.Sheets("Pipeline").Range("A1")
dim lastrow as long
with DestWbk.Sheets("Pipeline")
    lastrow = .cells(.rows.count, 1).end(xlup).row 'Get last row
    SrcWbk.Sheets("DELIVERY").Range("A3:AP200").Copy .Range("A" & LastRow)
    lastrow = .cells(.rows.count, 1).end(xlup).row 'Get new last row
    SrcWbk.Sheets("Complete or Cancelled").Range("A3:AP200").Copy .Range("A" & LastRow)
end with
SrcWbk.Close False

End Sub

【讨论】:

  • 您好,谢谢您,但是我收到错误“1004”应用程序定义的对象定义?在底部的第 6 行
  • 好的,我忘了将列放入范围。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 2017-11-16
  • 1970-01-01
相关资源
最近更新 更多