批量给Excel表格添加一列序号列
- 2026-11-07 15:22:48
批量给Excel表格添加一列序号列

需求提出:
test文件夹里面有3个excel文件,分别是1.xlsx,2.xlsx,3.xlsx,希望在不打开这三个excel文件的情况下,能够给每个文件的表格添加一列序号列,按行号进行排序。
请问用VBA怎么实现?
测试代码:
Sub test()Dim objFSO,objFolder,objFile As ObjectDim strFolderPath As StringDim appTarget As Excel.ApplicationDim wbTarget As WorkbookDim wsTarget As WorksheetDim lngLastRow As LongDim strFileList As VariantDim i As IntegerstrFolderPath = ThisWorkbook.Path & "\test\"strFileList = Array("1.xlsx", "2.xlsx", "3.xlsx")Set objFSO = CreateObject("Scripting.FileSystemObject")If Not objFSO.FolderExists(strFolderPath) ThenMsgBox "找不到路径: " & strFolderPath, vbCritical, "错误"Exit SubEnd IfOn Error GoTo ErrorHandlerSet appTarget = New Excel.ApplicationWith appTarget.Visible = False.ScreenUpdating = False.DisplayAlerts = FalseEnd WithFor i = LBound(strFileList) To UBound(strFileList)Dim strPath As StringstrPath = strFolderPath & strFileList(i)If objFSO.FileExists(strPath) ThenSet wbTarget = appTarget.Workbooks.Open(strPath)Set wsTarget = wbTarget.Worksheets(1)With wsTarget.Columns(1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove.Range("A1").Value = "序号"lngLastRow = .Cells(.Rows.Count, 2).End(xlUp).RowIf lngLastRow > 1 ThenWith .Range("A2:A" & lngLastRow).Formula = "=ROW()-1".Value = .ValueEnd WithEnd If.Columns(1).AutoFitEnd WithwbTarget.Close SaveChanges:=TrueEnd IfNext iCleanExit:If Not appTarget Is Nothing ThenappTarget.QuitSet appTarget = NothingEnd IfSet objFSO = NothingMsgBox "任务处理完成!", vbInformation, "提示"Exit SubErrorHandler:MsgBox "运行过程中发生错误: " & Err.Description, vbCriticalResume CleanExitEnd Sub
经测试通过,速度还可以。
主要是最近我的桌面上很多excel文件,搞得我很烦躁。来来回回地在多个Excel表格中机型切换,人都是懵的。
所以有的excel文件确实需要添加一列序号列,这样一来就相当于一个定位。虽然单元格定也可以定位,但毕竟还是太慢。
今天的分享就到这儿啦,非常感谢您对“Python SQL审天下”公众号的关注和点赞。如果您觉得我的公众号能给您带来一丝丝的收获,请多多转发给您的朋友圈,让更多的人看到并了解。也许您不经意间的点赞和转发,会给他人带来独特的体验和感受。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。