自动生成资产编号VBA代码教程.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE2/NUMPAGES2

自动生成资产编号VBA代码教程

在公司的日常运营中,我们可能需要为新购买的资产生成唯一的资产编号。这个编号通常包括资产购买的年份和一个序列号。在Excel中,我们可以利用VBA来自动化这个过程。本教程将指导你如何编写一个VBA事件处理程序来自动生成资产编号。

步骤1:打开VBA编辑器

1.在Excel中,点击“开发工具”标签页。(如果你没有看到“开发工具”标签页,请在Excel选项中开启它)

2.在“代码”组中,点击“VisualBasic”,打开VBA编辑器。

步骤2:编写Worksheet_Change事件处理程序

1.在VBA编辑器中,双击你想要编写代码的工作表(如Sheet1)以打开代码窗口。

2.在打开的代码窗口中,粘贴以下代码:

PrivateSubWorksheet_Change(ByValTargetAsRange)

禁用事件触发,防止无限循环

Application.EnableEvents=False

DimyearNumAsString

DimlastNumAsLong

检查是否更改了B列或F列中的单元格

IfTarget.Column=2OrTarget.Column=6Then

确保B列有内容且F列是一个日期

IfNotIsEmpty(Cells(Target.Row,B))AndIsDate(Cells(Target.Row,F))Then

从日期中提取年份

yearNum=Year(Cells(Target.Row,F).Value)

获取当前的最大序列号

lastNum=ThisWorkbook.Sheets(Sheet1).Range(Z1).Value

如果A列为空,即还没有生成编号

IfIsEmpty(Cells(Target.Row,A))Then

创建新的编号并更新序列号

lastNum=lastNum+1

ThisWorkbook.Sheets(Sheet1).Range(Z1).Value=lastNum

将新编号放入A列

Cells(Target.Row,A).Value=AL-yearNum-Format(lastNum,000)

EndIf

EndIf

EndIf

重新启用事件触发

Application.EnableEvents=True

EndSub

步骤3:理解代码逻辑

1.`PrivateSubWorksheet_Change(ByValTargetAsRange)`:这是Worksheet_Change事件的标准格式,当工作表中的单元格内容发生变化时触发。

2.`Application.EnableEvents=False`:在更改单元格内容时禁用事件触发,防止代码执行过程中再次触发事件,造成无限循环。

3.`DimyearNumAsString`:定义存储年份的字符串变量。

4.`DimlastNumAsLong`:定义存储序列号的长整型变量。

5.`IfTarget.Column=2OrTarget.Column=6Then`:判断更改是否发生在B列(第2列)或F列(第6列)。

6.`IfNotIsEmpty(Cells(Target.Row,B))AndIsDate(Cells(Target.Row,F))Then`:确保B列不为空,F列是有效的日期。

7.`yearNum=Year(Cells(Target.Row,F).Value)`:提取F列日期的年份。

8.`lastNum`:获取并更新最大序列号。

9.`Cells(Target.Row,A).Value`:在A列生成并放入新的资产编号格式。

10.`Application.EnableEvents=True`:代码执行完毕后重新启用事件触发。

步骤4:测试代码

在Excel工作表中的B列和F列输入数据,如果满足条件(B列有内容,F列是日期),那么当你离开这些单元格后,A列会自动生

文档评论(0)

lql9880 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档