ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 558|回复: 6

[求助] 在多个工作表中增加1列序号

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-8 19:58 | 显示全部楼层 |阅读模式
在多个工作表中增加1列序号和一个单元格

1、一个工作簿内有多个工作表,每个工作表各有若干数据,行数不等
2、想在工作表名称中含有“数据源”的表格中,增加一列数据“序号”,作为这些工作表的第1列,即A列,序号按顺序填列,直到最后一行。
3、想在工作表名称中含有“数据源”的表格的第一行的最后一列增加一个字段名称“核对结果”。
如当前数据第一行为AR的“注销日期”,在增加一列数据“序号”在A列后,原先AR的“注销日期”就变为AS的“注销日期”,将第一行的最后一列AT命名为“核对结果”。

效果详见《在多个工作表中增加1列序号效果表.xlsx》

请大神帮帮忙,希望vba获取相应数据,谢谢!


在多个工作表中增加1列序号.rar

27.68 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2023-6-8 20:26 | 显示全部楼层
Sub test()
    Dim ar, i&, wks As Worksheet
    For Each wks In Worksheets
        If wks.Name Like "*数据源*" Then
            With Range(wks.[A1], wks.Cells(Rows.Count, "A").End(3))
                 .EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                 ar = .Value
                 ar(1, 1) = "序号"
                 For i = 2 To UBound(ar)
                     ar(i, 1) = i - 1
                 Next
            End With
            wks.[A1].Resize(UBound(ar)) = ar
        End If
    Next
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-6-8 20:28 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-9 07:15 | 显示全部楼层
gwjkkkkk 发表于 2023-6-8 20:26
Sub test()
    Dim ar, i&, wks As Worksheet
    For Each wks In Worksheets

谢谢老师帮助!
再请教老师,想在第一行的最后一列AT列增加一列“核对结果”,该如何修改代码?
麻烦老师再帮帮忙,谢谢!

TA的精华主题

TA的得分主题

发表于 2023-6-9 14:51 | 显示全部楼层
APPLE123 发表于 2023-6-9 07:15
谢谢老师帮助!
再请教老师,想在第一行的最后一列AT列增加一列“核对结果”,该如何修改代码?
麻烦老 ...

站在巨人的肩膀上帮你弄了一下

image.jpg

TA的精华主题

TA的得分主题

发表于 2023-6-9 14:52 | 显示全部楼层
  1. Sub test()
  2.     Dim ar, i&, wks As Worksheet
  3.     For Each wks In Worksheets
  4.         If wks.Name Like "*数据源*" And wks.[A1] <> "序号" Then
  5.             With Range(wks.[A1], wks.Cells(Rows.Count, "A").End(3))
  6.                  .EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
  7.                  ar = .Value
  8.                  ar(1, 1) = "序号"
  9.                  For i = 2 To UBound(ar)
  10.                      ar(i, 1) = i - 1
  11.                  Next
  12.             End With
  13.             wks.[A1].Resize(UBound(ar)) = ar
  14.             wks.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1) = "核对结果"
  15.         End If
  16.     Next
  17. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-10 10:12 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 11:34 , Processed in 0.039684 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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