学以致用——使用VBA复制整理后的数据到新的工作表并另存为新文件(Save a worksheet as a workbook)

需求:某个字段需要基于当前数据和十几个独立的源文件定期整理,整理后的文件会多出0到n条新数据。目前采用全量更新的方式导入这些新数据。即,需要提供包括这几条新数据在内的所有数据的完整文件。而这个完整文件,可通过以下代码自动生成。(很简单的一个VBA小段程序)

Sub createNewDataFile()

Dim sourceRows As Integer           '整理后的数据行数(用于复制、另存为新的Data File数据)
Dim targetRows As Integer           '现有Data File的数据行数(即,上一期整理后的数据行数,用于清空现有数据)
Dim sourceSht As Worksheet          '整理后的工作表,即“ManuallyCollated_work”
Dim targetSht As Worksheet          '整理后的工作表的数据要复制到此工作表,进而另存为新的的Data File
Dim filePath As String              'Data File的保存路径
Dim timeStamp As String             '保存Data File时的时间戳

filePath = "C:\Data_File\AutoCreated\"
Set sourceSht = ThisWorkbook.Worksheets("ManuallyCollated_work")
Set targetSht = ThisWorkbook.Worksheets("ManuallyCollated_new")

sourceRows = sourceSht.UsedRange.rows.Count
targetRows = targetSht.UsedRange.rows.Count

targetSht.Range("A2:G" & targetRows).ClearContents          '复制新内容前先清空现有内容

sourceSht.Range("A2:D" & sourceRows).Copy targetSht.Range("A2")   '复制PID, CTY, SID和RD
sourceSht.Range("K2:L" & sourceRows).Copy targetSht.Range("E2")   '复制SRC和UK
sourceSht.Range("P2:P" & sourceRows).Copy targetSht.Range("G2")   '复制LUD
'将整理后的数据另存为单独的Data File
targetSht.Select
targetSht.Copy
timeStamp = Format(Now, "yyyy-mm-dd hh_mm_ss")
ChDir filePath
ActiveWorkbook.SaveAs filename:= _
        filePath & "ManuallyCollatedData_" & timeStamp & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub

  • 1
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值