Excel 2007
我正在尝试运行一个VBA脚本,该脚本将从一个标题为MSL的工作表中复制销售分类帐列表,其中包括DATE,INVOICE NO,COMPANY NAME,TOTAL,SUB-TOTAL,NETT,VAT。
我遇到的第一个问题是我只想复制包含记录的第2行及以后的行,这个数字每个月都会根据销售额而变化。
e.g。 Jan有30排 2月有24排 Mar有40行
接下来,我需要将数据粘贴到标题为“SalesDB”的新工作表中,其中包含相同的列DATE,INVOICE NO,COMPANY NAME,TOTAL,SUB-TOTAL,NETT,VAT。
我遇到的下一个问题是数据被覆盖。
感谢您的帮助 将在下一个小时从学校收集孩子
答案 0 :(得分:1)
假设Worksheet MLS
如下所示,Worksheet 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
答案 1 :(得分:0)
短而动态:(未经测试,可能包含拼写错误)
Sub CopyData()
Dim src As Range, dest As Range
'set source, exclude first row
Set src = Worksheets("MLS").Range("A2").CurrentRegion.Offset(1, 0)
'destination is one row below last row
Set dest = Worksheets("SalesDB").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
src.Copy Destination:=dest
End Sub