千家信息网

VBS怎么实现工作表按指定表头自动分表

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍VBS怎么实现工作表按指定表头自动分表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在我们实际工作中经常遇到将工作表按某一表头字段分开的情况,我们一般的做法是先
千家信息网最后更新 2026年11月04日VBS怎么实现工作表按指定表头自动分表

这篇文章主要介绍VBS怎么实现工作表按指定表头自动分表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在我们实际工作中经常遇到将工作表按某一表头字段分开的情况,我们一般的做法是先按指定表头排序然后分段复制粘贴出去,不但麻烦还很容易搞错。
下面的VBS脚本就是实现的工作表按指定表头(由用户选择)自动分表功能。需要的朋友只要将要操作的工作表拖放到脚本文件上即可轻松实现工作表分表(暂时只适用于xp系统):

代码如下:

'拖动工作表至VBS脚本实现按指定表头自动分表
On Error Resume Next
If WScript.Arguments(0) = "" Then WScript.Quit
Dim objExcel, ExcelFile, MaxRows, MaxColumns, SHCount
ExcelFile = WScript.Arguments(0)
If LCase(Right(ExcelFile,4)) <> ".xls" And LCase(Right(ExcelFile,4)) <> ".xls" Then WScript.Quit
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.Workbooks.Open ExcelFile
'获取工作表初始sheet总数
SHCount = objExcel.Sheets.Count
'获取工作表有效行列数
MaxRows = objExcel.ActiveSheet.UsedRange.Rows.Count
MaxColumns = objExcel.ActiveSheet.UsedRange.Columns.Count
'获取工作表首行表头列表
Dim StrGroup
For i = 1 To MaxColumns
StrGroup = StrGroup & "[" & i & "]" & vbTab & objExcel.Cells(1, i).Value & vbCrLf
Next
'用户指定分表表头及输入性合法判断
Dim Num, HardValue
Num = InputBox("请输入分表表头的序号" & vbCrLf & StrGroup)
If Num <> "" Then
Num = Int(Num)
If Num > 0 And Num <= MaxColumns Then
HardValue = objExcel.Cells(1, Num).Value
Else
objExcel.Quit
Set objExcel = Nothing
WScript.Quit
End If
Else
objExcel.Quit
Set objExcel = Nothing
WScript.Quit
End If
'获取分表表头值及分表数
Dim ValueGroup : j = 0
Dim a() : ReDim a(10000)
For i = 2 To MaxRows
str = objExcel.Cells(i, Num).Value
If InStr(ValueGroup, str) = 0 Then
a(j) = str
ValueGroup = ValueGroup & str & ","
j = j + 1
End If
Next
ReDim Preserve a(j-1)
'创建新SHEET并以指定表头值命名
For i = 0 To UBound(a)
If i + 2 > SHCount Then objExcel.Sheets.Add ,objExcel.Sheets("sheet" & i + 1),1,-4167
Next
For i = 0 To UBound(a)
objExcel.Sheets("sheet" & i + 2).Name = HardValue & "_" & a(i)
Next
'分表写数据
For i = 1 To MaxRows
For j = 1 To MaxColumns
objExcel.sheets(1).Select
str = objExcel.Cells(i,j).Value
If i = 1 Then
For k = 0 To UBound(a)
objExcel.sheets(HardValue & "_" & a(k)).Select
objExcel.Cells(i,j).Value = str
objExcel.Cells(1, MaxColumns + 1).Value = 1
Next
Else
objExcel.sheets(HardValue & "_" & objExcel.Cells(i,Num).Value).Select
If j = 1 Then x = objExcel.Cells(1, MaxColumns + 1).Value + 1
objExcel.Cells(x ,j).Value = str
If j = MaxColumns Then objExcel.Cells(1, MaxColumns + 1).Value = x
End If
Next
Next
For i = 0 To UBound(a)
objExcel.sheets(HardValue & "_" & a(i)).Select
objExcel.Cells(1, MaxColumns + 1).Value = ""
Next
objExcel.ActiveWorkbook.Save
objExcel.Quit
Set objExcel = Nothing
WScript.Echo "提示:对" & ExcelFile & "的分表操作完成"

以上是"VBS怎么实现工作表按指定表头自动分表"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

分表 表头 工作 脚本 内容 用户 篇文章 输入 合法 有效 代码 价值 做法 兴趣 功能 字段 实际 小伙 小伙伴 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金诺互联网科技 互联网科技社 互联网科技集团 齐家互联网科技 互联网科技革命 奇酷互联网络科技公司 上海万想互联网科技 互联网前沿科技 深圳卡尔迅互联网科技有限公司怎么样 青岛中康互联网医疗科技有限公司 武汉健翔互联网络科技有限公司 互联网科技大奖都有哪些公司 科技大学互联网 国大互联网教育科技有限公司薪资 黑科技 体验场景 互联网大会 富国互联网金融科技混合基金 中国科技和美国互联网 唐山双旺合互联网科技产业园 互联网科技的前景 长沙易易互联网科技有限公司 互联网科技媒体 互联网科技logo设计 撒么互联网科技公司 互联网科技有限公司 翻译 互联网科技博主是什么意思 互联网科技公司实习生 速维有品互联网信息科技(苏州)有限公司 萌小萌互联网科技河南有限公司 中国科技和美国互联网 北京瑞云互联网科技有限公司
0