VBA——固定资产标签自动产生模板

VBA实操

目录

前言

二、代码部分

1.实现清除功能

2.实现模板的复制与粘贴

 3.实现内容的复制粘贴

 最后一步,命令按钮

总结


文件

链接:https://pan.baidu.com/s/1ns7wv6I0eKjNzWzBqmPTPw 
提取码:lipf


前言

最近通过VBA完成了在Excel中根据明细中的信息自动生成标签的功能,今天通过固定资产标签做一次模拟。


一、Excel设计明细和标签的样板

上面的模板仅供参看,最好在标签打印中提前设置好大小,目前我设置的是大小,大概一行三个。

 

二、代码部分

1.实现清除功能

新增一个模块

Sub 清除()
    
    '获取标签页打印最大行数
    num = Sheets("标签页打印").UsedRange.Rows.Count

    '清空打印内容
    Sheets("标签页打印").Range("A1:L" & num).clear
    
End Sub

此功能是为了每次打印前能够清除工作簿内容,避免出现错误

2.实现模板的复制与粘贴

实现原理就是通过复制标签模板里设置好的内容,然后在标签打印的时候粘贴出来

Sub 标签模板(i As Integer, j As Integer)

    Dim sourceRange As Range
    Dim destinationRange As Range
    
    '设置源区域
    Set sourceRange = Sheets("标签模板").Range("A1:D5")
    
    '设置目标区域
    Set destinationRange = Sheets("标签页打印").Cells(i, j)

    '复制源区域的内容
    sourceRange.Copy
    
    
    '粘贴到目标区域,并且设置格子的大小
    destinationRange.PasteSpecial Paste:=xlPasteAll
    
    For Each sourceCell In sourceRange.Cells
        Set destinationCell = destinationRange.Cells(sourceCell.Row - sourceRange.Row + 1, sourceCell.Column - sourceRange.Column + 1)
        destinationCell.RowHeight = sourceCell.RowHeight
    Next sourceCell

End Sub

 3.实现内容的复制粘贴

实现原理:通过读取对应行数的数据,将数据插入到标签打印页的指定位置

Sub 标签打印(a As Integer, i As Integer, j As Integer)
 
    Dim start As Integer
    
    start = 1
    
    Sheets("标签页打印").Cells(i, j + 1) = Sheets("固定资产明细").Range("a" & a + start)
    Sheets("标签页打印").Cells(i + 1, j + 1) = Sheets("固定资产明细").Range("b" & a + start)
    Sheets("标签页打印").Cells(i + 2, j + 1) = Sheets("固定资产明细").Range("c" & a + start)
    Sheets("标签页打印").Cells(i + 3, j + 1) = Sheets("固定资产明细").Range("d" & a + start)
    Sheets("标签页打印").Cells(i + 4, j + 1) = Sheets("固定资产明细").Range("e" & a + start)
 
End Sub

 最后一步,命令按钮

在标签打印页创建一个打印按钮,并且编辑打印按钮触发的代码

Private Sub CommandButton1_Click()
 
    Dim i As Integer
    Dim j As Integer
    Dim num As Integer
    Dim t As Integer
    Dim a As Integer
    
    
    清除
    
    num = InputBox("请输入打印标签数量:")
    
    
    For a = 1 To num
    
        i = ((a - 1) \ 3) * 6 + 1
        
        t = a Mod 3
        
        If t = 1 Then
            j = 1
        ElseIf t = 2 Then
            j = 5
        ElseIf t = 0 Then
            j = 9
        End If
            
        Call 标签模板(i, j)
        
        
        Call 标签打印(a, i, j)
    
    Next
 
End Sub

总结

这是我第一次用VBA做的实际应用,其中的代码是我根据Java开发的经验,参照VBA的语法来实现的,希望能作为参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值