【VBA案例004】自动填充表单

  1. 方法一:
  2. 方法二:

大家好!今天我们分享一个有关VBA自动填充表单的案例,帮助大家简化表单填写的过程,提高工作效率。

我们经常需要填写大量重复的表单,例如报销单、数据输入表格等,并且每个表单都有各自的字段需要填写。手动逐个填写这些表单既耗时又容易出错。

使用VBA自动填充表单可以极大地简化这一过程,让我们能够更专注于其他重要的工作。

譬如说,现在有两个表格,一个是人员清单,另一个的表单。

现在要做的是,将人员清单中的每一行信息,填到表单里,并导出为一个单独的工作簿。

下面是VBA的代码分享,你也可以观看下方的视频解析:

方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub 表格填充()

Dim i, j, k

Dim xinXiSht As Worksheet
Dim qingDanSht As Worksheet

Set xinXiSht = ThisWorkbook.Worksheets("信息卡")
Set qingDanSht = ThisWorkbook.Worksheets("人员清单")

With qingDanSht
For i = 2 To .Range("a" & .Rows.Count).End(xlUp).Row
For j = 1 To 5
xinXiSht.Range("c" & j + 4) = .Cells(i, j)
Next j

xinXiSht.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & .Range("a" & i) & ".xlsx"
ActiveWorkbook.Close True
Next i
End With

End Sub

方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub 表格填充优化()

Dim i, j, k

Dim xinXiSht As Worksheet
Dim qingDanSht As Worksheet

Set xinXiSht = ThisWorkbook.Worksheets("信息卡")
Set qingDanSht = ThisWorkbook.Worksheets("人员清单")

Application.ScreenUpdating = False

Dim ar, br()
With qingDanSht
ar = .Range("a2:e" & .Range("a" & .Rows.Count).End(xlUp).Row)
For i = 1 To UBound(ar)
ReDim br(1 To 5, 1 To 1)
For j = 1 To 5
br(j, 1) = ar(i, j)
Next j
xinXiSht.[c5].Resize(UBound(br)) = br
xinXiSht.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ar(i, 1) & ".xlsx"
ActiveWorkbook.Close True
xinXiSht.[c5:c9].ClearContents
Next i
End With

Application.ScreenUpdating = True
End Sub

原始链接


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:【VBA案例004】自动填充表单

字数:456

本文作者:Rich Fan

发布时间:2023-10-23, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2023/10/22/VBA/VBA%E6%A1%88%E5%88%97/%E3%80%90VBA%E6%A1%88%E4%BE%8B004%E3%80%91%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%85%85%E8%A1%A8%E5%8D%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。