找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 406|回复: 0

【AI+Excel效率革命】3分钟搞定学生花名册制作!

[复制链接]
发表于 2025-8-6 18:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
作者:微信文章
还在为制作班级花名册而烦恼?班主任、辅导员、家委们的福音来啦!传统手工操作需要几小时的工作,现在用AI+Excel只需3分钟就能完成~

✨核心功能亮点:
1️、智能分类:自动按性别分页,男生女生一目了然
2️、整齐排版:每行5张照片,自动对齐不费心
3️、一键生成:从Excel到Word全自动完成
4️、智能纠错:自动检测缺失照片并标注

🔧超简单三步操作:

1.准备学生照片(确保文件名与Excel姓名一致)

2.复制提供的VBA代码(文末获取)

3.运行宏自动生成花名册

💡实际应用场景

·班主任制作班级花名册

·辅导员管理学生档案

·活动组织人员制作参会名单

·人事部门整理员工信息

打开千问(其他AI工具也可以实现),输入提示语:

请根据上传的excel文件,把excel文件中照片导入到Word文档,男生一页,女生一页,每行放5张照片,请用VBA解决。一分钟后千问就提供了VBA代码。

执行代码之前需要做好以下准备:

1、将所有学生的照片放入一个文件夹。

2、 照片文件名必须与Excel中的姓名完全一致。

3、 打开 Excel,按 ALT + F11 进入 VBA 编辑器,插入一个新模块,粘贴上面的代码。

运行宏 【ALT + F8】,运行后,您将得到一个 Word 文档,男生和女生的照片将分别在独立的两页上,每页都是每行5张照片的整齐布局。

代码如下:

Sub CreatePhotoDocument()

' 声明变量

Dim wdApp, wdDoc, tbl

Dim ws

Dim LastRow, i

Dim Name, Gender

Dim PhotoWidth, PhotoHeight

Dim PhotoFolderPath, PhotoExtension, PhotoPath

Dim Count, RowsNeeded

Dim CurrentRow, CurrentCol

Const MaxCols As Integer = 5 ' 每行5张照片



' ================== 用户配置区==================

' 1. 修改为您存放照片的文件夹路径(末尾必须有反斜杠 \)

PhotoFolderPath = "C:\Users\YourName\Pictures\照片\" ' <<< 必须修改!



' 2. 修改为照片的实际格式

PhotoExtension = ".jpg" ' <<< 必须修改!例如 .png, .jpeg



' 3. 设置照片大小(厘米)

PhotoWidth = 3.2  

PhotoHeight = 4.2

' ==============================================



' 设置工作表

Set ws = ThisWorkbook.Sheets(1)



' 找到数据最后一行

LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row



' 创建Word

Set wdApp = CreateObject("Word.Application")

Set wdDoc = wdApp.Documents.Add

wdApp.Visible = True



' --- 处理男生 ---

wdDoc.Content.Text = "男生照片" & vbCrLf

wdDoc.Content.Paragraphs.Last.Alignment = 1 ' 标题居中



' 计算男生人数

Count = 0

For i = 2 To LastRow

If Trim(ws.Cells(i, 4).Value) = "男" Then Count = Count + 1

Next i



RowsNeeded = Int((Count + MaxCols - 1) / MaxCols) ' 向上取整 (21/5=4.2 -> 5行)



' 插入男生表格

Set tbl = wdDoc.Tables.Add(wdDoc.Bookmarks("\EndOfDoc").Range, RowsNeeded, MaxCols)

tbl.Borders.Enable = False

tbl.Range.ParagraphFormat.Alignment = 1



CurrentRow = 1

CurrentCol = 1



For i = 2 To LastRow

Name = Trim(ws.Cells(i, 2).Value)

Gender = Trim(ws.Cells(i, 4).Value)



If Gender = "男" And Name <> "" Then

PhotoPath = PhotoFolderPath & Name & PhotoExtension



Set cellRange = tbl.Cell(CurrentRow, CurrentCol).Range

cellRange.Text = ""



If Dir(PhotoPath) <> "" Then

cellRange.InlineShapes.AddPicture PhotoPath, False, True

With cellRange.InlineShapes(1)

.Width = PhotoWidth * 28.3465

.Height = PhotoHeight * 28.3465

End With

Else

cellRange.Text = "[照片]" & vbCrLf & "未找到"

End If



cellRange.InsertAfter vbCrLf & Name



CurrentCol = CurrentCol + 1

If CurrentCol > MaxCols Then

CurrentCol = 1

CurrentRow = CurrentRow + 1

End If

End If

Next i



' --- 插入分页符 ---

wdDoc.Content.InsertAfter vbCrLf

wdDoc.Content.InsertParagraphAfter

wdDoc.Content.Paragraphs.Last.Range.InsertBreak 7 ' 分页符



' --- 处理女生 ---

wdDoc.Content.InsertAfter "女生照片" & vbCrLf

wdDoc.Content.Paragraphs.Last.Alignment = 1



' 计算女生人数

Count = 0

For i = 2 To LastRow

If Trim(ws.Cells(i, 4).Value) = "女" Then Count = Count + 1

Next i



RowsNeeded = Int((Count + MaxCols - 1) / MaxCols) ' 20/5=4行



' 插入女生表格

Set tbl = wdDoc.Tables.Add(wdDoc.Bookmarks("\EndOfDoc").Range, RowsNeeded, MaxCols)

tbl.Borders.Enable = False

tbl.Range.ParagraphFormat.Alignment = 1



CurrentRow = 1

CurrentCol = 1



For i = 2 To LastRow

Name = Trim(ws.Cells(i, 2).Value)

Gender = Trim(ws.Cells(i, 4).Value)



If Gender = "女" And Name <> "" Then

PhotoPath = PhotoFolderPath & Name & PhotoExtension



Set cellRange = tbl.Cell(CurrentRow, CurrentCol).Range

cellRange.Text = ""



If Dir(PhotoPath) <> "" Then

cellRange.InlineShapes.AddPicture PhotoPath, False, True

With cellRange.InlineShapes(1)

.Width = PhotoWidth * 28.3465

.Height = PhotoHeight * 28.3465

End With

Else

cellRange.Text = "[照片]" & vbCrLf & "未找到"

End If



cellRange.InsertAfter vbCrLf & Name



CurrentCol = CurrentCol + 1

If CurrentCol > MaxCols Then

CurrentCol = 1

CurrentRow = CurrentRow + 1

End If

End If

Next i



MsgBox "照片文档生成完成!", 64, "提示"

End Sub

你如果想学习更多的AI在Excel中的应用,可以报名AI赋能Excel课程,优惠价199元,课程案例20多个,从数据清洗到数据可视化都有。

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-8-11 20:34 , Processed in 0.082223 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表