Sub CreateSaleList()
AppSettings On Error GoTo ErrHandler Dim StartTime As Variant '开始时间
Dim UsedTime As Variant '使用时间
StartTime = VBA.Timer '记录开始时间 Dim Wb As Workbook
Dim Sht As Worksheet
Dim oSht As Worksheet
Dim NewSht As Worksheet
Dim iRow As Long
Dim NewRow As Long
Dim Dic As Object
Dim Key As String
Dim PageNo As Long Set Wb = Application.ThisWorkbook For Each oSht In Wb.Worksheets
If oSht.Name <> "明细" And oSht.Name <> "模板" Then
Debug.Print oSht.Name
oSht.Delete
End If
Next oSht Set Sht = Wb.Worksheets("明细")
Set oSht = Wb.Worksheets("模板") Set Dic = CreateObject("Scripting.Dictionary")
With Sht
iRow = 3 Do While .Cells(iRow, 1).Value <> ""
Key = .Cells(iRow, 1).Value
Dic(Key) = Dic(Key) + 1
PageNo = Int((Dic(Key) - 1) / 5) + 1
NewName = Key & "(" & PageNo & ")"
If Dic(Key) Mod 5 = 1 Then
' On Error Resume Next
' Wb.Worksheets(NewName).Delete
' On Error GoTo 0
oSht.Copy After:=Wb.Worksheets(Wb.Worksheets.Count)
Set NewSht = Wb.Worksheets(Wb.Worksheets.Count)
NewSht.Name = Key & "(" & PageNo & ")"
NewSht.Range("B3").Value = .Cells(iRow, "C").Value
NewSht.Range("E3").Value = .Cells(iRow, "B").Value
NewSht.Range("G2").Value = NewSht.Range("G2").Value & .Cells(iRow, "A").Value
NewSht.Range("G3").Value = NewSht.Range("G3").Value & .Cells(iRow, "L").Value
End If NewRow = 4 + (Dic(Key) - 1) Mod 5 + 1 NewSht.Cells(NewRow, 1).Value = .Cells(iRow, 6).Value
NewSht.Cells(NewRow, 2).Value = .Cells(iRow, 7).Value
NewSht.Cells(NewRow, 3).Value = .Cells(iRow, 8).Value
NewSht.Cells(NewRow, 4).Value = .Cells(iRow, 11).Value
NewSht.Cells(NewRow, 5).Value = .Cells(iRow, 10).Value
NewSht.Cells(NewRow, 6).Value = .Cells(iRow, 13).Value
NewSht.Cells(NewRow, 7).Value = .Cells(iRow, 9).Value iRow = iRow + 1
If iRow = 60 Then Exit Do '防止死循环
Loop
End With Set Wb = Nothing
Set Sht = Nothing
Set oSht = Nothing
Set NewSht = Nothing AppSettings False UsedTime = VBA.Timer - StartTime
MsgBox "本次运行耗时:" & Format(UsedTime, "#0.0000秒")
ErrorExit:
AppSettings False
Exit Sub
ErrHandler:
If Err.Number <> 0 Then
MsgBox Err.Description & "!", vbCritical, "QQ 84857038"
Debug.Print Err.Description
Err.Clear
Resume ErrorExit
End If End Sub Public Sub AppSettings(Optional IsStart As Boolean = True)
If IsStart Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
Application.StatusBar = ">>>>>>>>Macro Is Running>>>>>>>>"
Else
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.StatusBar = False
End If
End Sub

  

20170716xlVba销售明细转销售单据的更多相关文章

  1. 销售及SAP销售业务方案思维导图

    销售: SAP销售方案:

  2. SAP 成套销售&按项目销售

    http://blog.sina.com.cn/s/blog_95ac31e30102x5we.html   分类: SAP_SD SAP 成套销售&按项目销售 一.业务简介 成套销售(KIT ...

  3. 快消品销售管理系统,PDA销售管理系统,销售拜访PDA,进销存管理PDA系统 移动扫描打印开单POS

    各种ERP软件的移动订单及移动车销解决方案是针对各个需要快速.便捷的,通过智能PDA移动智能终端设备实现销售订单下达及快速车销的应用解决方案.通过将移动订单及移动车销集成到ERP的移动解决方案,可以帮 ...

  4. 调用SAP函数创建寄售退货订单的时候报错:业务对象 BUS2032 是销售订单,销售凭证类别 H 是退货。

    RE.KR订单类型用BAPI_CUSTOMERRETURN_CREATE 其他用BAPI_SALESORDER_CREATEFROMDAT2

  5. PowerBI系列之入门案例动态销售报告

    本文将讲解如何从零开始使用PowerBI Desktop制作一份动态销售报告.帮助大家快速入门PowerBI Desktop的操作.我们先来看一下一份动态销售报告的构成. 1.左上角放置了小黎子数据分 ...

  6. ecshop功能目录

    右上 开店向导 1设置商店的一些基本信息 商店的名字.地址.配送方式.支付方式等 2给商店添加一些商品 商品的名称.数量.分类.品牌.价格.描述等 3恭喜您,您的网店可以使用了!下面是一些常用功能的链 ...

  7. 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值

    https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...

  8. Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)

    作者:秋时 杨昶   转载须说明出处 4.5     单据流转 4.5.1  单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...

  9. 改变传统的开单模式------手持POS终端移动销售开单 移动进销存的利器

    手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...

随机推荐

  1. Linux命令:查看文件内容cat|tac|more|less|head|tail|nl|od

    查看文件内容的命令;cat, tac, more, less, head, tail, nl, 1)cat 由第一行开始显示文档内容,一直显示到最后 2)tac 从最后一行开始显示,一直显示到第一行内 ...

  2. Python: 读文件,写文件

    读写文件是最常见的IO操作.Python内置了读写文件的函数. 读写文件前,我们先了解一下,在磁盘上读写文件的功能都是有操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求 ...

  3. Vert.x

    Vert.x是一个基于JVM.轻量级.高性能的应用平台,非常适用于最新的移动端后台.互联网.企业应用架构.Vert.x基于全异步Java服务器Netty,并扩展出了很多有用的特性. 同时支持多种编程语 ...

  4. C/C++之单例模式实现

    /*** * 保证一个类仅有一个实例,并提供一个访问它的全局访问点 */ #include <iostream> #include <string> using namespa ...

  5. [转载]C#操作符??和?:

    先看如下代码: string strParam = Request.Params["param"]; if ( strParam== null ) {     strParam= ...

  6. 如何在Apache中运行Python脚本

    第一步:进入C:\Apache24\cgi-bin: 第二步:在cgi-bin目录下新建一个hello.py文件: 第三步: #!python #coding:utf-8 print("co ...

  7. Git在windows下上传文件至github流程

    github是开发者分享的一个平台,这里不多说,想要上传文件至github需要有一个开发者账号,还需要在windows下安装好了git. 做好准备工作之后,接下来操作 一:登录github,创建项目 ...

  8. label语句、break语句和continue语句

    label语句 可以在代码中添加标签,以便使用.以下是label语句的语法: label:statement 示例: start: for (var i = 0; i < count; i++) ...

  9. cache与buffer

    Cache 缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的 ...

  10. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...