作者:绿色风
分类:
时间:2022-08-17
浏览:188
楼主 kevinchengcw |
Q: 如何用vba代码将工作表中多个表格区域内容按指定列排序? A: 代码如下:
- Sub test()
- Dim Ws As Worksheet, RngStart As Range, Rng As Range, RngT As Range
- For Each Ws In Worksheets '循环各个工作表
- If Not Ws.Name Like "*模板" Then '如果不是模板工作表,则
- With Ws
- Set RngStart = .UsedRange.Find("图号") '设定第一个查找到的表头关键字单元格
- If Not RngStart Is Nothing Then '如果存在该表头关键字,则
- Set Rng = RngStart '赋值给循环变量
- Do
- Set RngT = .UsedRange.Find("编制:", Rng) '查找表头关键字后方的表尾关键字单元格
- If RngT Is Nothing Then '如果找到不到表尾关键字则退出循环
- Exit Do
- ElseIf RngT.Row < Rng.Row Then '如果找到的表尾关键字单元格位于当前表头关键字单元格之前则退出循环
- Exit Do
- End If
- With Rng.Offset(1).Resize(RngT.Row - Rng.Row - 2, 10) '根据找到的关键字位置确定表格范围(不含序号列)
- If .Rows.Count > 1 Then .Sort .Cells(1, 1) '如果内容行数多于1行,则根据第一列内容进行排序
- .HorizontalAlignment = xlCenter '单元格文字水平与垂直皆居中
- .VerticalAlignment = xlCenter
- End With
- Set Rng = .UsedRange.Find("图号", Rng) '查找下一个表头关键字位置
- Loop Until Rng.Address = RngStart.Address '如果找到的位置不是第一个关键字位置则继续循环
- End If
- End With
- End If
- Next Ws
- End Sub
详见附件及素材源帖. 2011年5月份生产计划单.rar |
2楼 0Mouse |
范例代码很好展示了位置不同的多表区域的查找、定位与选取手法,收藏学习! |
3楼 凌乱然了 |
学习了,谢谢 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一