zoukankan      html  css  js  c++  java
  • 重复打印相同内容(Doc档)的时候自动生成打印编号

    昨天突然接到一个好久未联系的朋友电话,说是江湖救急,要打印一份单据,单据上有个号码要自动生成,如下图,最土的办法是打印完一张,手工改下号码,但这种方法估计碰到成百上千张时估计会疯掉

    网上找了实现方法,用Office中的宏即可解决,我把宏里面的代码依此实际需求做了些调整并贴出来,关键代码做下注释,以方便有同样需要的人使用

    Sub PrintCopies()
    
        Dim i As Long
        Dim lngStart
        Dim lngCount
        Dim rngDoc As Range
        
        '提示需要打印多少份
        lngCount = InputBox("Please enter the number of copies you want to print", "Please enter the number of copies you want to print", 1)
        
        If lngCount = "" Then
            Exit Sub
        End If
        
        '提示本次打印从哪个号码开始打印,默认为1
        lngStart = InputBox("Enter the starting number you want to print", "Enter the starting number you want to print", 1)
        If lngStart = "" Then
            Exit Sub
        End If
        
            
        For i = lngStart To lngCount
        
            '编号的位置,依实际状况不同,需要修改Start和End的值
            Set rngDoc = ActiveDocument.Range(Start:=22, End:=25)
            
            '数字不满3位时前面补0
            If i < 10 Then
                rngDoc.Text = "00" & i
            End If
            
            If (i >= 10) And (i < 100) Then
                rngDoc.Text = "0" & i
            End If
            
            If (i >= 100) And (i < 1000) Then
                rngDoc.Text = i
            End If
            
            '调用打印
            Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
            wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
            ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
            False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
            PrintZoomPaperHeight:=0
            
            '未使用此方法,相当于在当前选择项上按Backspace键
            'Selection.TypeBackspace
        Next
    End Sub
  • 相关阅读:
    018_STM32程序移植之_串口接收中文
    003_软件安装之_Visual Studio 2012
    001_C#我的第一个串口上位机软件
    017_STM32程序移植之_AS608指纹模块
    016_STM32程序移植之_舵机
    015_STM32程序移植之_NRF24L01模块
    014_STM32程序移植之_L298N电机驱动模块
    002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波
    001_89C52之_Proteus_ADC0809采集电压
    001_电子工程师招聘笔试题及详细解析
  • 原文地址:https://www.cnblogs.com/dimg/p/7574003.html
Copyright © 2011-2022 走看看