excel通过数据模板与vba批量制作csv数据表

通过数据模板与VBA结合,批量制作CSV数据表,要求使用规则逐步递增的命名方式来命名批量制作出来的数据表,数据表的内容根据实际需求由最初的模板和提供的基础值自动生成。尽量减少手动操作,真正实现全自动!如图所示为批量制作出来的CSV数据表。



编辑数据模板,只要A2和B2单元格发生变化,其它相应的单元格就会通过引用公式来更新数据;



编辑好数据模板后,打开VBA编辑器,选择菜单“工具”——“宏”——“Visual Basic 编辑器”(快捷键为:Alt+F11);



插入用户窗体,在Visual Basic 编辑器菜单栏里选择“插入”——“用户窗体”,然后编辑用户窗体(该窗体作为模板基础数据录入部分),控件的具体使用稍微复杂一些,这里就不作介绍啦;



编辑窗体和控件代码,右击“UserForm1”——“查看代码”,在代码窗口录入相应的代码(由于这部分涉及的内容和步骤比较繁琐,只提供最终代码参考),代码如下:

复制代码

代码如下:

Private Sub CommandButton1_Click()
Dim n As Long
If TextBox1 <> "" And TextBox2 <> "" And TextBox3 <> "" And TextBox2 < TextBox3 Then
On Error Resume Next
MkDir CreateObject("WScript.Shell").SpecialFolders("Desktop") & "/" & TextBox1
For n = 1 To (TextBox3 - TextBox2 + 1) / 10
Sheets(1).Cells(2, 1).Value = TextBox1 & "-" & n
Sheets(1).Cells(2, 2).Value = TextBox2 + 10 * (n - 1)
ActiveWorkbook.SaveAs Filename:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & "/" & TextBox1 & "/" & TextBox1 & "-" & n, FileFormat:=xlCSV, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
Next n
Unload Me
MsgBox "数据处理成功!", vbOKOnly + 64, "提示"
Else
MsgBox "请核对数据信息!", vbOKOnly + 64, "提示"
TextBox1.SetFocus
End If
End Sub
Private Sub CommandButton2_Click()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
Dim i%, Str$
With TextBox1
For i = 1 To Len(.Text)
Str = Mid(.Text, i, 1) '遍历文本框中输入的每一个字符。
Select Case Str
Case "a" To "z" '列出允许输入的字符。
Case "A" To "Z" '列出允许输入的字符。
Case Else
Beep
.Text = Replace(.Text, Str, "") '如果输入的不是允许的字符,则使用Replace函数替换成空白。
End Select
Next
End With
End Sub
Private Sub TextBox2_Change()
Dim i%, Str$
With TextBox2
For i = 1 To Len(.Text)
Str = Mid(.Text, i, 1) '遍历文本框中输入的每一个字符。
Select Case Str
Case "0" To "9" '列出允许输入的字符。
Case Else
Beep
.Text = Replace(.Text, Str, "") '如果输入的不是允许的字符,则使用Replace函数替换成空白。
End Select
Next
End With
End Sub
Private Sub TextBox3_Change()
Dim i%, Str$
With TextBox3
For i = 1 To Len(.Text)
Str = Mid(.Text, i, 1) '遍历文本框中输入的每一个字符。
Select Case Str
Case "0" To "9" '列出允许输入的字符。
Case Else
Beep
.Text = Replace(.Text, Str, "") '如果输入的不是允许的字符,则使用Replace函数替换成空白。
End Select
Next
End With
End Sub

编辑好窗体代码后,点击保存;

插入模块,该模块的作用是调出录入窗体(虽然窗体本身已经实现自动加载,但是不能实现二次自动加载),在Visual Basic 编辑器菜单栏里选择“插入”——“模块”,写入代码:

Sub 打开窗体()

UserForm1.Show

End Sub

模块代码录入完毕后,点击保存,然后关闭Visual Basic 编辑器;



回到数据表,调出录入窗体,选择菜单“工具”——“宏”——“宏”(快捷键为:Alt+F8)——选择“打开窗体”——“执行”;



按规定要求,录入基础数据,然后点击“确定”(一旦确定,VBA代码马上执行,将在桌面新建一个名为“Excel”的文件夹,在“Excel”文件夹里批量创建10个CSV工作簿,名称依次为Excel-1至Excel-10,内容也相应变化),确认“数据处理成功!”;



在桌面找到批量创建的CSV数据表,验证结果!



编辑代码的过程比较复杂,需要有足够的耐心,需要不断地去尝试和修改;

为了相关宏能正常运行,请把宏的安全性设置为最低级别。

(0)

相关推荐

  • Excel如何批量制作CSV数据表

    众所周知,Excel的功能十分强大,而其最核心的功能在于数据处理。熟练驾奴Excel,您的工作将充满快乐和自信。当您仅花上几分钟就完成了别人花上几天功夫才能完成的数据处理工作时,心中的那份喜悦只有您自 ...

  • 怎么给Excel文档空白单元格批量填充相同数据?

    有些用户在编辑Excel文档的时候经常需要给一些单元格中输入相同的数据,普通的填充方法无法满足这种需求,接下来小编就给大家介绍一下怎么给Excel文档空白单元格批量填充相同数据.具体如下:1. 首先第 ...

  • EXCEL的if countif left len函数制作查询匹配表

    工作过程中经常需要用到查询匹配功能,例如:要查询某个手机号码是否包含在某此号码段里面,或者查询某个身份证号码是否包含在某些地区的身份证号码段里面等.下面分享一下我用if函数 countif函数 lef ...

  • Excel如何将空白单元格以重复的数据填充或删除

    Excel如何将空白单元格以重复的数据填充或删除

  • 在excel表格中如何用vba给单元格批量输入序号?

    下面小编为大家介绍excel中使用vba给单元格批量输入序号方法,推荐到我们,喜欢的朋友可以参考本文,一起来看看吧! 步骤 1.首先我们打开一个工作样表作为例子. 2.在excel工作表中输入序列号很 ...

  • 标签打印软件如何导入Excel表批量制作盆栽标签

    盆栽大家都见过,像超市,花店都有销售,而且盆栽上一般也都有贴的盆栽标签,介绍盆栽的名称.价格和盆栽二维码,扫描二维码就可以看到盆栽的详细信息.不同盆栽肯定有不同的标签,那么这些盆栽标签是如何批量制作的 ...

  • 按要求使用VBA批量修改数据量非常大的数字号码

    VBA在Excel中的应用非常灵活,可以满足常用函数不可实现的功能,其强大的功能使我们的工作变得非常轻松! 本文,我们来学习一例,如何应用VBA批量修改诸如考号.编号.身份证号等数字号码的批量修改! ...

  • Word2007邮件合并自动提取数据批量制作

    本例介绍如何让Word 2007自动提取Excel成绩表中的数据批量制作成绩单,这个神奇的通知单自己会从Excel成绩表中提取学生的姓名.学号.各科成绩等等,然后按老师指定的格式自动制作全班同学的成绩 ...

  • Excel如何制作一个数据图表?

    如果我们要做一个报表,是以一个纯表格的方式来做的话,看起来会有眼花缭乱的感觉。如果我们把表格转换成一个图表的样式,那么看起来会非常直观,也非常的明确,给人眼前一亮的感觉,那么要如何制作出一个图表呢? ...