[数据]:PPT、Excel制式文件的批量制作-Vba

13次阅读
没有评论
关键词:Vba、制式文件、批量处理

工作中遇到制式文件的重复创建是常见,网络上提供了从易到难的不同解决办法。

但更重要的是,思维方式的提升。

[数据]:PPT、Excel制式文件的批量制作-Vba

本文先介绍第一种方法 -vba。

Vba的优势在于,内嵌Office、即写即用,适用数据安全管控较严的公司和单位。

1、文件复制及文件重命名

storeName变量:表示店号、站点等
For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        storeName = Trim(ws.Cells(i, "A").Value)
        If storeName <> "" Then
            FileCopy templatePath(模板路径), saveFolder(输出路径) & storeName & " -副本.pptx"
        End If
    Next i

2、sheet表复制及填充

定义要复制的模板sheet

 Set wsSource = ThisWorkbook.Worksheets(sourceSheetName)
 Set wsTemplate = ThisWorkbook.Worksheets(templateName)

给副本命名

cellValue = Trim(CStr(wsSource.Cells(i, "C").Value))
Set wsNew = ThisWorkbook.Worksheets(cellValue)
Set wsNew = ActiveSheet
                wsNew.Name = cellValue

副本单元格写入对应B列值

wsNew.Range("G1").Value = bColumnValue
bColumnValue = wsSource.Cells(i, "B").Value

3、子表信息批量提取

创建和写入完成后,也即有了不同副本的实际填写结果,我们可以通过vba再次输出填写运算的汇总结果。

tgt.Name = "写入汇总"
    'tgt.Range("A1:J1").Value = Array("指标1", "指标2".....)

所有指标批量抓取填入

    r = 2   '结果从第2行写起
    For i = 7 To Sheets.Count
        Set sht = Sheets(i)
        arr = Array(sht.Name, sht.Range("B1").Text)
        '写入汇总表
        tgt.Cells(r, 1).Resize(1, 2).Value = arr根据实际指标数调整
        r = r + 1
    Next i

4、输出和交互

tgt.Columns.AutoFit   '美化列宽
MsgBox "汇总完成,共处理 " & (Sheets.Count - 7) & " 张表。", vbInformation
正文完
 0
评论(没有评论)