VBA——固定资产标签自动产生模板_excel vba 制作固定资产标签-程序员宅基地

技术标签: excel  经验分享  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的语法来实现的,希望能作为参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52342654/article/details/131249611

智能推荐

基于FPGA的BPSK、QPSK以及OQPSK实现_fpga实现bpsk调制-程序员宅基地

文章浏览阅读2.8k次,点赞10次,收藏56次。在现代通信领域中,大多数的信道因具有带通特性而不能直接传送基带信号,为了使数字信号能在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。二进制相移键控(BSPK)、正交相移键控(QPSK)、偏置正交相移键控(OQPSK)是重要的调制方式,被广泛地应用于现代通信的各个领域。_fpga实现bpsk调制

编写一个 函数把华氏温度转化为 摄氏温度,转换公式用递归的方法 编写 函数求Fibonacci级数。编写函数求两个数的最大公约数和最小公倍数_编写一个函数,将华氏温度转换为摄氏温度。公式为c=(f-32)×5/9。-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏24次。编写一个 函数把华氏温度转化为 摄氏温度,转换公式:C=(F-32)*5/9//编写一个 函数把华氏温度转化为 摄氏温度,转换公式:C=(F-32)*5/9#include<iostream>#include<cmath>using namespace std;double Transform(double F) { return (F - 32) * 5 / 9;}int main() { double F; cout << "请输入华氏._编写一个函数,将华氏温度转换为摄氏温度。公式为c=(f-32)×5/9。

海康威视摄像头视频在web端播放解决方案ffmpeg + nginx + http-flv_海康威视 java sdk web 预览-程序员宅基地

文章浏览阅读7k次,点赞2次,收藏19次。一:下载海康JAVA-DEMO我开发环境是window10-64位 IDEA JDK1.8 的 和 mac IDEA JDK1.8 demo下载地址 https://www.hikvision.com/cn/download_more_570.html1:下载完成以后,必须认真看完这个txt,不然后面可能会出现“dll缺失”和“sdk文件不存在”这种异常2:sdk使用手册【必看】二:摄像设备ip,通道查看海康摄像头设备的录像文件一般都是存储在录像机,找出录像机的ip及账号密码在最新版IE11_海康威视 java sdk web 预览

Ubuntu执行mkfs.ubifs、ubinize文件失败解决_ubinize: error!: no sections found the ini-file "b-程序员宅基地

文章浏览阅读556次。Ubuntu执行mkfs.ubifs、ubinize文件失败解决_ubinize: error!: no sections found the ini-file "bin/ubinize.cfg

qml入门教程(20):qml property使用介绍_qml q_property 怎么用-程序员宅基地

文章浏览阅读1.1k次,点赞32次,收藏19次。QML 中的属性property是一个重要的概念,用于定义和访问QML对象的数据。在QML中,属性可以是各种类型,包括基本数据类型(如int, double, string)和复杂类型(如对象和列表)。属性在QML中可用于数据绑定、事件处理和界面更新。_qml q_property 怎么用

oracle查看用户执行的sql,查询Oracle中正在执行和执行过的SQL语句-程序员宅基地

文章浏览阅读2.6k次。查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID,b.username 登录Oracle用户名,b.serial#,spid 操作系统ID,paddr,sql_text 正在执行的SQL,b.machine 计算机名FROM v$process a, v$session b, v$sqlarea cWHERE a.addr = b.paddrAND ..._oracle查看接收的sql参数

随便推点

spring cloud的RefreshScope注解进行热部署_spring refresh 热部署-程序员宅基地

文章浏览阅读2.5w次,点赞5次,收藏36次。需要热加载的bean需要加上@RefreshScope注解,当配置发生变更的时候可以在不重启应用的前提下完成bean中相关属性的刷新。经由@RefreshScope修饰的bean将会被RefreshScope代理,其关于bean生命周期的相关方法也在此定义。@ManagedOperation(description = "Dispose of the current instanc..._spring refresh 热部署

php抓取网指定内容,php获取网页内容方法总结-程序员宅基地

文章浏览阅读388次。抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,有兴趣的,以下就是几种常用的用php抓取网页中的内容的方法。1.file_get_contentsPHP代码复制代码代码如下:$url="http://www.jb51.net";$contents=file_get_contents($url);//如果出现中文乱码使用下面代码//$getc..._php正则截取file_get_contents里的域名

Android实现与PHP后端的交互(数据传输,文件传输)(超详细/附源码)_用php开发android系统usb通信-程序员宅基地

文章浏览阅读1.4k次。本篇文章将详细介绍Android与PHP的交互,实际上就是利用http进行通信的过程,通过Get方法和Post方法,实现数据传输,文件传输,博主在真机上进行了实测,并附上了源码的链接。_用php开发android系统usb通信

plsql如何导入csv文件,PLSQL导入csv文件到数据库-程序员宅基地

文章浏览阅读2w次,点赞10次,收藏40次。搜索热词好久不用oracle了,突然忘记怎么导入数据了。今天再记录一下吧。1、建表。目的是:被导入到数据的存储位置。因为数据库中曾经有过相同表结构的表,所以直接使用sql建表。sql">-- t_sdh_cc表create table t_sdh_cc as select * from t_sdh_cc_hn_cxh where 1=0;@H_404_7@2、建好表后,开始导入数据。2...._plsql导入csv

Micro Drive Data Recovery_which may indicate disk corruption.-程序员宅基地

文章浏览阅读607次。Our Microdrive data recovery service recovers lost, deleted or damaged photographic images, videos or data from any type of Microdrive. Our recovery specialists are able to un-delete Microdrive file_which may indicate disk corruption.

android权限赋予流程_adb 给app授权-程序员宅基地

文章浏览阅读3k次。android 权限 permission_adb 给app授权

推荐文章

热门文章

相关标签