excel VBA分割数据行生产多个表格

摘要:
WPS只能对付费和特殊版本使用VBA。

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

excel要先打开vba功能:

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

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

excel VBA分割数据行生产多个表格第1张

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

免责声明:文章转载自《excel VBA分割数据行生产多个表格》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python(一):python语言基础Amazon DynamoDB 全局表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VBA 判断字符串包含函数

在Excel里面经常要处理的一个情况就是筛选出某一列中包含某个字符串的数据,这个时候如果用查找可以单个找,但是要一起筛选出来不是很方便。 这个时候可以通过VBA编程来解决,比较后再另一列中做个标记,然后再通过筛选功能就很轻松了。 编程实现时最重要的就是字符串比较函数Instr了。Instr函数用法,具体的例子: If  InStr(1, .Cells(i,...

VBA二次学习笔记(2)——两个Excel表内容比较

说明(2018-9-3 22:38:58): 1. 就是之前问同事要来的作业,有两个格式一样的Excel文件,一个是正确答案,一个是员工作答的。通过代码将两个文件进行比对,把不同之处列出来。 正文: Sub test1() Dim wb1 As Worksheet Dim wb2 As Worksheet Dim wb As...

《Excel VBA编程开发》附加内容1:VBA生成GUID

  1.1 VBA生成GUID 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成...

VBA 如何实现让所有图片刚好适应所在单元格大小与表框

Excel疑难千寻千解丛书(三)Excel2010 VBA编程与实践.pdf Sub 让图片适应单元格() Dim sh As Shape Dim sSheet As Worksheet '源工作表 Set sSheet = Worksheets("Sheet1") For Each sh In sSheet.S...

Excel 列号转换为字母(VBA)

使用下列算法可以实现“ConvertToLetter”功能: 列号除以 27,然后将得到的整数赋值给变量“i”。 列号减去 i*26,然后将所得结果赋值给变量“j”。 将得到的整数值转换为其对应的字母字符,“i”和“j”的取值范围将分别为 0 至 26。 例如:列号为 30。 列号除以 27:30 / 27 = 1.1111,由“Int”函数四舍五入...

vba Excel连接数据库

PostgreSql: 第一步 在网上下载postres的驱动程序,之后安装,下载地址:https://www.devart.com/odbc/postgresql/download.html 第二步 创建ODBC数据源 点击“开始-》控制面板-》管理工具-》数据源(ODBC)-》用户DSN-》添加” 安装上图配置好之后写入VBA代码并导入包文件...