20170716xlVba销售明细转销售单据
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销售明细转销售单据的更多相关文章
- 销售及SAP销售业务方案思维导图
销售: SAP销售方案:
- SAP 成套销售&按项目销售
http://blog.sina.com.cn/s/blog_95ac31e30102x5we.html 分类: SAP_SD SAP 成套销售&按项目销售 一.业务简介 成套销售(KIT ...
- 快消品销售管理系统,PDA销售管理系统,销售拜访PDA,进销存管理PDA系统 移动扫描打印开单POS
各种ERP软件的移动订单及移动车销解决方案是针对各个需要快速.便捷的,通过智能PDA移动智能终端设备实现销售订单下达及快速车销的应用解决方案.通过将移动订单及移动车销集成到ERP的移动解决方案,可以帮 ...
- 调用SAP函数创建寄售退货订单的时候报错:业务对象 BUS2032 是销售订单,销售凭证类别 H 是退货。
RE.KR订单类型用BAPI_CUSTOMERRETURN_CREATE 其他用BAPI_SALESORDER_CREATEFROMDAT2
- PowerBI系列之入门案例动态销售报告
本文将讲解如何从零开始使用PowerBI Desktop制作一份动态销售报告.帮助大家快速入门PowerBI Desktop的操作.我们先来看一下一份动态销售报告的构成. 1.左上角放置了小黎子数据分 ...
- ecshop功能目录
右上 开店向导 1设置商店的一些基本信息 商店的名字.地址.配送方式.支付方式等 2给商店添加一些商品 商品的名称.数量.分类.品牌.价格.描述等 3恭喜您,您的网店可以使用了!下面是一些常用功能的链 ...
- 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值
https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...
- Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)
作者:秋时 杨昶 转载须说明出处 4.5 单据流转 4.5.1 单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...
- 改变传统的开单模式------手持POS终端移动销售开单 移动进销存的利器
手持POS终端高清彩屏,清晰.美观.大方,适用于仓库.超市.服装.食品.批发零售.手机电脑等企业管理.可与管理软件灵活对接.1:员工记不住价格,产品名称,只要有PDA扫描,价格,库存,直接开销售单,打 ...
随机推荐
- python 内置函数bytearray
1.参考文档 class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray cl ...
- Ignite集群管理——基于静态IP的节点发现
Ignite作为分布式内存,集群管理必不可少,Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于静态IP的节点发现. 两个最重要的TCP通信设置类: 1. ...
- HTTP 协议入门
本文转载自:http://www.ruanyifeng.com/blog/2016/08/http.html HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它 ...
- ACM题目————困难的串
题目描述 如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串".例如,BB,ABCDACABCAB,ABCDABCD都是容易的串,而D,DC,ABDA ...
- Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED”
Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED” 一.问题 Python2.7.9 之后,当使用urllib.urlopen打开一个 ht ...
- java项目报错: org.springframework.beans.factory.BeanCreationException找不到mapper.xml文件
错误代码 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userSer ...
- 20145334赵文豪网络对抗Web安全基础实践
1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...
- C++ vector 删除一个指定元素 和 find 一个指定元素以及遍历删除、 map遍历删除元素和删除find到的元素
vector: 1.delete element 转载:http://www.cnblogs.com/xudong-bupt/p/3522457.html #include <vector> ...
- C#中的基本类型理解
1.C#把所有基本类型都封装成自己的类型了,如下图,int被封装成了一个struct结构体.如果定义一个int对象,是可以调用int结构体里的函数的 2.和C\C++不同,C#的char就是单纯的代表 ...
- 在Visual C#中使用XML指南之读取XML
网站:http://www.yesky.com/155/1915155all.shtml#p1915155