zoukankan      html  css  js  c++  java
  • excel VBA分割数据行生产多个表格

    WPS只有付费和特殊版本才能使用VBA。

    excel要先打开vba功能:

    打开开发工具面板(默认是没有开发工具选项卡的)

    【文件】->【选项】->【自定义功能区】

    进入vba编辑

    方式一、【右键Sheet1 】->【查看代码】

    方式二、【开发者工具】->【Visual Basic】

    粘贴代码:

    Sub IMonday()
    
        Dim r, c, i, WJhangshu, WJshu, bt As Long
        r = Range("A" & Rows.Count).End(xlUp).Row
        b = InputBox("请输入分表行数")
        If IsNumeric(b) Then
               WJhangshu = Int(b)
            Else
                MsgBox "输入错误", vbOKOnly, "错误"
                End
        End If
        c = Cells(1, Columns.Count).End(xlToLeft).Column
        bt = 1 '标题行数
        'WJhangshu = 50 '每个文件的行数
        WJshu = IIf(r - bt Mod WJhangshu, Int((r - bt) / WJhangshu), Int((r - bt) / WJhangshu) + 1)
        
        '------
        Set fs = CreateObject("Scripting.FileSystemObject") '
        
        For i = 0 To WJshu
            Workbooks.Add
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Format(i + 1, String(Len(WJshu), 0)) & "." & fs.GetExtensionname(ThisWorkbook.FullName)   '扩展名
            Application.DisplayAlerts = True
            ThisWorkbook.ActiveSheet.Range("A1").Resize(bt, c).Copy ActiveSheet.Range("A1")
            ThisWorkbook.ActiveSheet.Range("A" & bt + i * WJhangshu + 1).Resize(WJhangshu, c).Copy _
            ActiveSheet.Range("A" & bt + 1)
            ActiveWorkbook.Close True
        Next
    
    End Sub
    

     bt = 1表示第1至bt行是标题行,这样,分割的每张表都会带标题行,如果你的标题行占两行,将其改为2即可,表示前两行是标题行。

  • 相关阅读:
    关于VS2010“ADO.NET Entity Data Model模板丢失或者添加失败问题
    Swagger的配置方法
    asp.net core的cookie认证
    abap程序开发
    闲置7成新二手图书处理(待更新)
    Winform 调用C++ OCX 传入参数和传出参数问题
    Html上传图片问题
    服务器端输出到客户端
    IE8下居然页面突然看不了
    解决Arial字体“高低肩问题”
  • 原文地址:https://www.cnblogs.com/jiujian/p/12642662.html
Copyright © 2011-2022 走看看