通过搜索功能可以查询本站的所有文章
网站首页 本站动态 资源共享 美文妙乐 教学教案 双语新闻 论文相关 辅助教学 教学软件 广东高考

几个实用的Excel 宏代码


来源:高中英语教学交流 发布时间:2013-03-22 10:41:00 查看次数:

内容提要:   有时需要在Excel中将某个多行多列的区域转换到一列中,下面的VBA代码可以实现这个目的。

Excel 宏 按列拆分

在一个工作表中是许多的公司订单记录,如何将它按公司名分拆成一个个工作表,用VBA实现相当便捷。以下是演试:
原始工作簿:
 
运行VBA代码后的工作簿:
 
代码如下:

  1. 需要先把数据按照分拆的那一列字段排序
  2. 如果你想应用在你的表格中,只需将所有resize(1,3)中的3修改,改成你的表格的列数。如果你总表有8列就改成resize(1,8)即可
  3. 如果你想根据表格的第一列拆分,需要把Sheet1.Cells(i, 2) <> Sheet1.Cells(i - 1, 2)和sh.Name = Sheet1.Cells(i, 2)的2换成1

Sub s()
  Application.ScreenUpdating = False
  Dim sh As Worksheet, i As Integer
    For i = 2 To Sheet1.[a65536].End(3).Row
      If Sheet1.Cells(i, 2) <> Sheet1.Cells(i - 1, 2) Then
        Worksheets.Add after:=Worksheets(Sheets.Count)
          Set sh = ActiveSheet
            sh.Name = Sheet1.Cells(i, 2)
            sh.Range("a1").Resize(1, 3).Value = Sheet1.Range("a1").Resize(1, 3).Value
            sh.Range("a65536").End(3).Offset(1, 0).Resize(1, 3).Value = Sheet1.Cells(i, 1).Resize(1, 3).Value
          Else
            sh.Range("a65536").End(3).Offset(1, 0).Resize(1, 3).Value = Sheet1.Cells(i, 1).Resize(1, 3).Value
      End If
    Next i
Application.ScreenUpdating = True
End Sub

第1页 第2页 第3页

扫描二维码手机查看
相关文章
最新更新
阅读排行
快速导航
关于我们
联系我们
【高中英语教学交流网】 【yykzzsj】
微信公众号 站长微信
版权所有 2008-2024 高中英语教学交流网