excel如何批量复制数据到同一个模板中生成并打印

查看 70|回复 5
作者:q6378561   
举例: sheet1里面有不同的名字和专业 sheet2是一个录取通知书模板 如何批量导入生成并打印
(公司是内网不能用软件,最好是vba或者jsa代码这样子)

批量, 模板

yangwei   

可以使用sheet2复制到word中,然后使用word的 邮件合并 功能。
看视频:https://www.bilibili.com/video/BV1iv4y1y7Jk/?spm_id_from=333.337.search-card.all.click&vd_source=469b8066da5905483594389f206bbc8f
如果我理解错了你意思说抱歉
jyjjf   

推荐使用方方格子会员版
980041382   

可以使用VBA宏来实现Excel批量复制数据到同一个模板中生成并打印,具体步骤如下:
1.创建一个新的工作表,并命名为“录取通知书模板”。在该工作表中,设计一个包含录取通知书中需要填写的所有信息的表单,包括收件人姓名、专业、录取结果等。
2.在原始数据所在的工作表(例如,Sheet1)中,设置一个按钮或快捷键,用于触发宏的执行。点击按钮或使用快捷键后,宏会自动执行。
3.在VBA编辑器中,编写一个宏来实现数据的复制和生成。首先,宏需要从原始数据所在的工作表中获取需要复制的数据,例如收件人姓名、专业和录取结果等。这些数据可以使用For循环遍历工作表中的每一行来获取。
4.接下来,宏需要将这些数据复制到录取通知书模板工作表中。可以使用Copy和Paste方法来实现复制和粘贴。需要注意的是,每次复制后,宏需要自动调整复制区域的行数,以便下一次复制可以将数据复制到新的一行。
5.在所有数据都被复制到录取通知书模板工作表后,宏需要将该工作表保存为一个新的Excel文件,并自动打印。
下面是一个简单的示例代码,可以根据具体需求进行修改:
[Visual Basic] 纯文本查看 复制代码Sub GenerateNotification()
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim printRange As Range
   
    '获取工作簿和工作表对象
    Set wb = ActiveWorkbook
    Set ws1 = wb.Sheets("Sheet1")
    Set ws2 = wb.Sheets("录取通知书模板")
   
    '确定需要复制的数据范围
    lastRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
   
    '遍历原始数据,复制到模板中
    For i = 2 To lastRow '假设第1行是标题行
        '复制数据到模板中
        ws2.Range("B4").Value = ws1.Cells(i, 1).Value '姓名
        ws2.Range("B5").Value = ws1.Cells(i, 2).Value '专业
        ws2.Range("B6").Value = ws1.Cells(i, 3).Value '录取结果
        
        '自动调整复制区域的行数
        Set printRange = ws2.Range("B3:B6")
        Set printRange = printRange.Resize(printRange.Rows.Count + 1)
        
        '打印录取通知书
        ws2.PrintOut From:=1, To:=1, Copies:=1, Preview:=False, ActivePrinter:="打印机名称"
    Next i
   
    '保存并关闭工作簿
    wb.SaveAs "录取通知书.xlsx"
    wb.Close
End Sub
小小涩郎   

vba 不难写  关键是得看你的格式  不发示例文件没办法写的
q6378561
OP
  


小小涩郎 发表于 2023-3-13 23:01
vba 不难写  关键是得看你的格式  不发示例文件没办法写的

[table][tr][td] 学号
您需要登录后才可以回帖 登录 | 立即注册

返回顶部