EXCEL技能 |
您所在的位置:网站首页 › excel自动填写表单 › EXCEL技能 |
大家都知道运用vba可以让我们在excel操作中节省时间,但是vba毕竟需要编程的知识储备,也因此劝退了绝大部分Excel使用者。 其实如果通过案例,在解决实际问题中学习,往往有事半功倍的效果。 今天DADO就给大家讲解一个比较有代表的简单案例,希望能对大家有所帮助。 案例背景用vba编写一个宏,并将这个宏关联到“付款单”表的一个“保存”按钮上。 实现在一键将编制完成的付款单信息登记到“付款记录”表中。 解法Sub payrec() '//2023.4.8 Dim payinfo(1 To 1, 1 To 6) As Variant With Sheets("付款单") payinfo(1, 1) = .[I5] payinfo(1, 2) = CDate(.[d4]) payinfo(1, 3) = .[c11] payinfo(1, 4) = "付" & .[C6] & .[C9] payinfo(1, 6) = .[c10] End With With Sheets("付款记录") r = .Cells(.Rows.Count, "a").End(xlUp).Row '求第一个空行并赋值给变量r .Cells(r + 1, 1).Resize(1, 6) = payinfo End With End Sub思路大致上主要分为两部分, 一是从“付款单”表中将所需要的信息提取出来保存在数组中;二是将刚才保存的数组按规定粘贴到“付款记录”表的相应单元格内。根据以上思路,我们需要首先声明一个数组 payinfo, 数组的大小根据“付款记录”表的列数确定。 这里我们定义为一个1行6列的数组。接下来通过with … end with 语句对数组payinfo赋值,完成提取“付款单”表中所需信息的功能。 With Sheets("付款单") payinfo(1, 1) = .[I5] payinfo(1, 2) = CDate(.[d4]) payinfo(1, 3) = .[c11] payinfo(1, 4) = "付" & .[C6] & .[C9] payinfo(1, 6) = .[c10] End With然后我们开始操作“付款记录”表,为了避免覆盖已有数据,我们先找出第一个空行: r = .Cells(.Rows.Count, "a").End(xlUp).Row最后将数组payinfo的值赋予第一个空行所在的六个单元格: .Cells(r + 1, 1).Resize(1, 6) = payinfo在“付款单”表中插入一个长方形形状, 然后右键点击下拉菜单中选择“指定宏”,在弹出的窗口中选择刚才我们保存的宏payrec。哦,对了,有的同学不知道如何打开vba编辑器,请看我另一篇介绍。 以上都是我自己学习的理解,如有不对之处,请不吝赐教,DADO欢迎大家在评论区交流。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |