20170731xlVba根据数据表和模板表生成新表
Public Sub SplitData()
Dim Wb As Workbook
Dim Sht As Worksheet
Dim NewSht As Worksheet
Dim arr As Variant
Dim Brr()
Set Wb = Application.ThisWorkbook
Set Sht = Wb.Worksheets("总")
With Sht
endrow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
Set Rng = .Range("A3:L" & endrow)
arr = Rng.Value
For J = 6 To UBound(arr, 2)
ReDim Brr(1 To 6, 1 To 1)
Index = 0
mysum = 0
Set NewSht = CopySheet("模板", arr(1, J))
For i = LBound(arr) + 1 To UBound(arr)
If Len(arr(i, J)) > 0 Then
If arr(i, J) > 0 Then
Index = Index + 1
ReDim Preserve Brr(1 To 6, 1 To Index)
Brr(1, Index) = Index
Brr(2, Index) = arr(i, 2) '品名
Brr(3, Index) = arr(i, 3) '单位
Brr(4, Index) = arr(i, 5) '单价
Brr(5, Index) = arr(i, J) '数量
Brr(6, Index) = arr(i, 5) * arr(i, J) '数量
mysum = mysum + Brr(6, Index)
End If
End If
Next i
With NewSht
.Range("E3").Value = arr(1, J)
Set Rng = .Range("A4")
Set Rng = Rng.Resize(UBound(Brr, 2), UBound(Brr))
Rng.Value = Application.WorksheetFunction.Transpose(Brr)
SetBorders Rng
Set Rng = .Cells(.Rows.Count, "E").End(xlUp).Offset(1, 0)
Rng.Value = "合计"
Set Rng = .Cells(.Rows.Count, "F").End(xlUp).Offset(1, 0)
Rng.Value = mysum
Set Rng = .Cells(.Rows.Count, "B").End(xlUp).Offset(2, 0)
Rng.Value = "注:一式三联,第三联为供应商所有,其它联为客户所有。"
Rng.HorizontalAlignment = xlLeft
End With
Next J
End With
Set Wb = Nothing
Set Sht = Nothing
Set NewSht = Nothing
End Sub
Sub SetBorders(ByVal Rng As Range)
With Rng.Borders
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Public Function CopySheet(ByVal Model As String, ByVal NewName As String) As Worksheet
Application.DisplayAlerts = False
Dim Wb As Workbook
Dim ModelSht As Worksheet
Dim NewSht As Worksheet
Set Wb = Application.ThisWorkbook
Set ModelSht = Wb.Worksheets(Model)
On Error Resume Next
Wb.Worksheets(NewName).Delete
On Error GoTo 0
ModelSht.Copy After:=Wb.Worksheets(Wb.Worksheets.Count)
Set NewSht = Wb.Worksheets(Wb.Worksheets.Count)
NewSht.Name = NewName
Application.DisplayAlerts = True
Set CopySheet = NewSht
Set Wb = Nothing
Set NewSht = Nothing
Set ModelSht = Nothing
End Function
20170731xlVba根据数据表和模板表生成新表的更多相关文章
- SQL Server复制表结构和表数据生成新表的语句
参考:http://topic.csdn.net/t/20020621/09/820025.html SELECT * INTO newTableName FROM oldTabl ...
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- 使用NPOI按照word模板文件生成新的word文件
/// <summary> /// 按照word模板文件 生成新word文件 /// </summary> /// <param name="tempFile& ...
- CodeSmith单表生成实体模板与生成多表实体模板
生成单实体模板: <%@ Template Language="C#" TargetLanguage="C#" %> <%@ Assembly ...
- powerdesigner中将表的name在生成建表sql时生成注释
1.为powerdesigner的表设置注释方法: powerdesigner默认没有注释: 设置方法: 选择那个表 右键- >Properties- >Columns- >Cust ...
- C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高. 包装了一个简单的sql ...
- MySQL通过SQL语句来直接生成新表
1. 既复制表结构,也复制表数据 mysql> CREATE TABLE tmp_table SELECT * FROM dede_news; 说明:这种方法的缺点就是新表中没有了旧表的prim ...
- MySQL 复制已存在的表生成新表
从已有的表创建一个新的空表 CREATE TABLE new_table LIKE old_table; 注意: create table ... like 创建的表会保留原有表的字段.索引的定义,但 ...
- VBA练习-打开文件,添加选中项,生成新表
学习VBA,正好给财务制作一个小工具: Sub 打开人员信息表() Dim wb As Workbook, c As Integer Set wb = Workbooks.Open(, True) c ...
随机推荐
- 【转】SQL Server、Oracle、MySQL和Vertica数据库常用函数对比
SQL Server.Oracle.MySQL和Vertica数据库常用函数对比 Vertica数据库是HP公司新收购的用于BI方面的数据库. 1. 绝对值 S:select abs(-1) valu ...
- python中repr和eval可以用来在数据结构和字符串间互转
在这个功能上,repr和str的作用一样,把一个数据结构转换成字符串,例如: >>> str([1,2,3,4])'[1, 2, 3, 4]' >>> repr([ ...
- 百度地图api通过地址显示地图,白名单
百度地图api通过地址显示地图,白名单 http://developer.baidu.com/map/jsdemo.htm#i7_1?qq-pf-to=pcqq.c2c---------------- ...
- MATERIALIZED VIEW-物化视图
Oracle的实体化视图提供了强大的功能,可以用在不同的环境中,实体化视图和表一样可以直接进行查询.实体化视图可以基于分区表,实体化视图本身也可以分区. 主要用于预先计算并保存表连接或聚集等耗时较多 ...
- Ubuntu系统下在github中新增库的方法
上一篇介绍了Ubuntu16.04系统下安装git的方法.本博客介绍怎么在github上怎么新建库. 如图 root@ranxf:/home/ranxf/learnGit/ranran_jiekou# ...
- javascript 的 事件类型(事件)
事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行. 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都 ...
- 05: jQuery
目录: jQuery参考网站 W3school 1.1 JQuery作用 1.2 jQuery与DOM比较 与 相互转换 1.3 jQuery选择器 1.4 jQuery筛选与过滤 1.5 jQuer ...
- WordPress REST API 内容注入漏洞
1 WordPress REST API 内容注入漏洞 1.1 摘要 1.1.1 漏洞介绍 WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统.在4.7.0版本后,R ...
- bzoj 2038 A-小Z的袜子[hose] - 莫队算法
作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从 ...
- bzoj 3343: 教主的魔法
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 924 Solved: 402[Submit][Status][Discuss] Descriptio ...