ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Excel VBA ——如何快速填充纸质登记表

2022-04-08 22:01:15  阅读:251  来源: 互联网

标签:VBA 领取 填充 登记表 清除 Excel Range Sheet1 lastline


场景:

一些个地方肯定有人特别喜欢用纸质单据记录,但是对于实际执行人来讲,大多数单据其实填写相当有规律,频繁使用手写简直是浪费时间,因此本示例尝试解决这个问题。

要点:

1. 图片电子签名

2. 常用数据快速填充

3. 一键打印并记录台账

效果如下:  1. 下拉选择常用信息,自动填充到左边的表格  2.点击打印按钮,自动将填写的信息写入台账,然后发送打印请求到打印机

 

 

 

代码非常简单

一个输出并打印

一个监测指定单元格是否变化,如果变化则将其对应的数据取出并填充。(利用了vlookup函数获取对应的唯一值)

对应打印按钮的代码:

 

Private Sub CommandButton2_Click()
    Dim Wb As Workbook
    Set Wb = ThisWorkbook
    Wb.Worksheets(1).PrintOut '打印
    
    lastline = Sheet3.Range("A65535").End(xlUp).Row + 1
    Sheet3.Cells(lastline, 1) = Sheet1.Range("E8").Value '日期填充
    Sheet3.Cells(lastline, 2) = Format(Sheet1.Range("G8").Value, "hh:mm:ss") '时间填充
    Sheet3.Cells(lastline, 3) = Sheet1.Range("F10").Value '科室名称填充
    Sheet3.Cells(lastline, 4) = Sheet1.Range("C10").Value '领取人姓名填充
    Sheet3.Cells(lastline, 5) = Sheet1.Range("B15").Value '备注填充
    '——————————————————
    Sheet1.Range("C4") = "" '申请时间清除
    Sheet1.Range("E8") = "" '领取日期清除
    Sheet1.Range("G8") = "" '领取时间清除
    Sheet1.Range("C10") = "" '领取人清除
    Sheet1.Range("F10") = "" '科室名称清除
    Sheet1.Range("C12") = "" '品类清除
    Sheet1.Range("B15") = "" '备注清除
    
End Sub

 

 

'监控J3单元格的变动
Private Sub Worksheet_Change(ByVal Target As Range)
    'On Error Resume Next

    If Target.Address(0, 0) = "J3" Then ''将事件限制在单元格a3的改变上
        Sheet1.Range("C4") = "" '申请时间清除
        Sheet1.Range("E8") = "" '领取日期清除
        Sheet1.Range("G8") = "" '领取时间清除
        Sheet1.Range("C10") = "" '领取人清除
        Sheet1.Range("F10") = "" '科室名称清除
        Sheet1.Range("C12") = "" '品类清除
        Sheet1.Range("B15") = "" '备注清除
        
        '重新赋值
        MyDate = Date
        MyTime = Now
        Debug.Print (MyTime)
        Debug.Print (MyDate)
        Debug.Print (MyHour)
        Sheet1.Range("C4") = MyTime '申请时间填充
        Sheet1.Range("E8") = MyDate '领取日期填充
        Sheet1.Range("G8") = Format(MyTime, "hh:mm:ss") '领取时间填充
        
        If Len(Sheet1.Range("J6")) < 2 Then
            Sheet1.Range("C10") = "" '领取人填充
        Else
            Sheet1.Range("C10") = Sheet1.Range("J6") '领取人填充
        End If
        Sheet1.Range("F10") = Sheet1.Range("J7") '科室名称填充
        Sheet1.Range("C12") = Sheet1.Range("J8") '品类填充
        
    End If
End Sub

 

附件:   百度盘     提取码: 7x1a

 

标签:VBA,领取,填充,登记表,清除,Excel,Range,Sheet1,lastline
来源: https://www.cnblogs.com/shandongmiao/p/16120032.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有