Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
VBA Excel脚本,用于从一个工作表中复制包含数据的行&;粘贴到另一个中而不覆盖_Excel_Excel 2007_Vba - Fatal编程技术网

VBA Excel脚本,用于从一个工作表中复制包含数据的行&;粘贴到另一个中而不覆盖

VBA Excel脚本,用于从一个工作表中复制包含数据的行&;粘贴到另一个中而不覆盖,excel,excel-2007,vba,Excel,Excel 2007,Vba,Excel 2007 我正在尝试运行一个VBA脚本,该脚本将从一个名为MSL的工作表中复制一个销售分类账列表,该工作表的列有日期、发票号、公司名称、总计、小计、净额、增值税 我遇到的第一个问题是,我只想复制包含记录的第2行及以后的行,该数字将根据销售情况每月更改 e、 简有30行 二月有24排 马尔有40行 接下来,我需要将数据粘贴到名为“SalesDB”的新工作表中,该工作表具有相同的列DATE、INVOICE NO、COMPANY NAME、TOTAL、SUB-TOTAL、NETT、VAT

Excel 2007

我正在尝试运行一个VBA脚本,该脚本将从一个名为MSL的工作表中复制一个销售分类账列表,该工作表的列有日期、发票号、公司名称、总计、小计、净额、增值税

我遇到的第一个问题是,我只想复制包含记录的第2行及以后的行,该数字将根据销售情况每月更改

e、 简有30行 二月有24排 马尔有40行

接下来,我需要将数据粘贴到名为“SalesDB”的新工作表中,该工作表具有相同的列DATE、INVOICE NO、COMPANY NAME、TOTAL、SUB-TOTAL、NETT、VAT

我遇到的下一个问题是数据被覆盖

 Sub CopyPasteSales
     Dim salesData as range, targetRng as range

     Set salesData = Worksheets("MLS").Range("A2:G" & Range("A1").end(xlDown).Row)

     If Worksheets("SalesDB").Range("A2") = vbNullString Then
          Set targetRng = Worksheets("SalesDB").Range("A2") //If no data in SalesDB start in row 2
     Else
          Set targetRng = Worksheets("SalesDB").Range("A1").end(xlDown).Offset(1,0) //If data already in SalesDB, find next free row
     End if

     salesData.Copy Destination:= targetRng
 End Sub
谢谢你的帮助
将在接下来的一小时内从学校收集孩子

假设
工作表MLS
如下所示,并且
工作表SalesDB
的格式相同:

    A      B           C               D       E           F       G 
1   Date   Invoice No  Company Name    Total   Sub-Total   Nett    VAT  
2   
此代码将从
MLS
中获取数据,并考虑条目数,然后添加到
SalesDB
,避免覆盖

 Sub CopyPasteSales
     Dim salesData as range, targetRng as range

     Set salesData = Worksheets("MLS").Range("A2:G" & Range("A1").end(xlDown).Row)

     If Worksheets("SalesDB").Range("A2") = vbNullString Then
          Set targetRng = Worksheets("SalesDB").Range("A2") //If no data in SalesDB start in row 2
     Else
          Set targetRng = Worksheets("SalesDB").Range("A1").end(xlDown).Offset(1,0) //If data already in SalesDB, find next free row
     End if

     salesData.Copy Destination:= targetRng
 End Sub
简短且动态:(未测试,可能包含打字错误)


澄清一下,,每个月您都想将工作表MSL中当月的最新销售数据复制到工作表SalesDB中,但保留SalesDB中所有前几个月的数据,即SalesDB保留前几个月的销售历史记录?谢谢您的帮助我非常感谢您似乎正在做我需要的所有事情,但直到我的小儿子们拿到一份在set targetRng行出现错误“无法在中断模式下执行代码”,这很奇怪,因为它确实起作用了?必须将MLS更改为MSLEdit,很抱歉,此错误是运行时错误“1004”应用程序定义的错误或对象定义的错误@remnant如果SalesDB中没有任何数据,它将给出错误。我现在更新了代码来处理SalesDB中还没有数据的情况