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即可,表示前两行是标题行。

  • 相关阅读:
    svn: E120106: ra_serf: The server sent a truncated HTTP response body.
    HTTP method POST is not supported by this URL解决
    TinyOS文件结构清单解析
    Crush Course 神话学笔记
    Django 入门
    Crush Course 心理学笔记
    网络相关知识汇总链接
    9.21 小程序开发培训讲座
    论文简读之LAIA
    Android studio 的那些坑
  • 原文地址:https://www.cnblogs.com/jiujian/p/12642662.html
Copyright © 2011-2022 走看看