Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何将行从一个工作簿移动到另一个工作簿(无选择)_Excel_Vba - Fatal编程技术网

Excel 如何将行从一个工作簿移动到另一个工作簿(无选择)

Excel 如何将行从一个工作簿移动到另一个工作簿(无选择),excel,vba,Excel,Vba,我的目标是获取行大小可变的excel文档,复制它,然后将其粘贴到新文档的底行 长话短说,我需要每月的销售报告,并将其堆叠到一个更大的excel文件中。每个月我们的销售额都是可变的。我需要把这几个月加在一起,这样我们才能处理它们 我有一些代码,我认为在下面工作。它能够在不同的工作表中移动可变行,但不能对不同的工作手册执行相同的操作 Private Sub MoveRowToEndOfTable() Dim LastRow As Long LastRow = Cells.Find(What:="*"

我的目标是获取行大小可变的excel文档,复制它,然后将其粘贴到新文档的底行

长话短说,我需要每月的销售报告,并将其堆叠到一个更大的excel文件中。每个月我们的销售额都是可变的。我需要把这几个月加在一起,这样我们才能处理它们

我有一些代码,我认为在下面工作。它能够在不同的工作表中移动可变行,但不能对不同的工作手册执行相同的操作

Private Sub MoveRowToEndOfTable()
Dim LastRow As Long
LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row
Sheets(1).Range("A2:A" & LastRow, "G2:G" & LastRow).Copy
Workbooks("BRN report Aggregator.xlsx").Worksheets("New shares EOM").Range("a6000").End(xlUp).Offset(1, 0).Cells.Insert
End Sub

我猜您的工作簿已关闭,请在粘贴值之前检查它(如果工作簿已关闭~>请打开它):


我猜您的工作簿已关闭,请在粘贴值之前检查它(如果工作簿已关闭~>请打开它):


谢谢你的回复。它使得我第一次运行代码时它复制一行,下一次它复制两行,然后复制四行等等。等等,现在能用了吗?也许我只是跟它说得不好。现在它不再工作了,出现了我描述的错误。谢谢你的回复。它使得我第一次运行代码时它复制一行,下一次它复制两行,然后复制四行等等。等等,现在能用了吗?也许我只是跟它说得不好。现在它不再工作了,出现了我描述的错误。不,遗憾的是不是这样。我有单独的sub用于打开和关闭有问题的文档,尽管您的代码比我的代码更干净,我将使用它。它与范围有关,它似乎通过我在BRN报告聚合器中的内容影响代码复制的内容。我已经尝试过,如果范围有问题,那么我认为问题可能与工作簿和工作表有关…好的,它看起来很有效,所以,我将此设置为已解决。谢谢你的帮助。不,很遗憾不是这样。我有单独的sub用于打开和关闭有问题的文档,尽管您的代码比我的代码更干净,我将使用它。它与范围有关,它似乎通过我在BRN报告聚合器中的内容影响代码复制的内容。我已经尝试过,如果范围有问题,那么我认为问题可能与工作簿和工作表有关…好的,它看起来很有效,所以,我将此设置为已解决。谢谢你的帮助。
Private Sub MoveRowToEndOfTable()
   Dim LastRow As Long
   LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   Sheets(1).Range("A2:A" & LastRow, "G2:G" & LastRow).Copy
   Dim wb As Workbook, wb_target As Workbook
   'check if workbook is open already
   For Each wb In Workbooks
       If wb.Name = "BRN report Aggregator.xlsx" Then
           Set wb_target = Workbooks("BRN report Aggregator.xlsx")
               Exit For
       End If
   Next wb
   'if not then open it
   If wb_target Is Nothing Then
       Set wb = Workbooks.Open("Path_to_file/BRN report Aggregator.xlsx")
   End If
   wb.Worksheets("New shares EOM").Range("a6000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll 'or xlPasteValues  --depends on your needs
   wb.Close True 'save and close if required
End Sub