excel学习库

excel表格_excel函数公式大全_execl从入门到精通

秒懂快速处理excel数据绝技之按钮操作法

Excel表格使我们办公常用的软件之一,各种报表数据通过Excel表格能够高效快速的显示出来,同时我们可以通过excel自带的VBA宏编程语言对一些重复的操作进行快速处理,既提高了处理速度,又不易出错。但是,如果我们每次此运行VBA程序的时候都需要进入编译界面的话,这样会大大的降低我们处理的速度,特别是当我们编写的VBA程序不止一个时,会浪费很多的时间。今天我们就一起看一下在excel中如何通过按钮操作,快速的运行宏编译语言。excel表格中大量繁杂的数据 一个一个比对真的很麻烦1、首先我们打开要处理数据的excel表格后,找到并单击“开发工具”进入开发菜单界面,如下图(这里以office2007为例,其他版本的excel类似):打开“开发工具菜单”2、 进入开发工具菜单后,找到并单击“插入”按钮,然后在表单控件中选择第一个图标(按钮),如下图:打开插件3、 在excel的编辑区选择一个区域放置该按钮,然后为该按钮选择对应的宏或新建宏代码(注意:需要先将宏代码编译到VB代码中这里才有得选,具体如何编写VB代码,在前面文章中有介绍,这里就不再重复),如下图:根据需要选择对应的宏代码4、如需要添加其他按钮则重复上述1-3步骤,下图是本地根据自身需要创建的一个加载excel数据到当前表格后进行比较数据是否相同的实例,可供参考:将数据导入当前表格并做比对示例导入数据部分代码如下(以标准数据的导入为例): Sub 打开标准数据表() Dim mypath$, myname$, rng As Range, myr$ &#x27;定义变量 Application.ScreenUpdating = True &#x27;显示屏幕计算过程 Sheet1.Activate [A1:H500].Clear &#x27;将表格中的原油数据清空 mypath = ThisWorkbook.path & "\" &#x27;设置模板数据的路径,这里以当前的EXCEL表格作为打开路径 myname = "标准数据.xlsx" &#x27;要打开复制的excel表格名称 With GetObject(mypath & myname) &#x27;获取要复制的表格对象 &#x27; myr = .Sheets(1).[A1:H500].Row &#x27;选取当前表格中的sheet1的A1-H500 Set rng = .Sheets(1).Range("A1:H500") rng.Copy &#x27;复制rng数据 Sheets("标准数据").Range("A1:H500").PasteSpecial &#x27;把复制的数据粘贴到当前表格中的“标准数据”的A1-H500 .Close True &#x27;关闭模板数据表格 End With Application.ScreenUpdating = True &#x27;打开屏幕显示 End Sub 数据比对部分代码如下(这部分注释可以参考上两次关于使用编程思维处理excel数据的发文,由于分别有标准数据和BOM1对比、标准数据和BOM2对比,所以这里有两个类似的函数): Sub 数据对比() Sheets("标准数据").Select Range("A1:K500").Select Selection.Copy Sheets("BOM1比对结果").Select Range("A1:K500").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Dim i As Integer Dim j As Integer For i = 2 To 500 &#x27;2到500行 For j = 2 To 20 &#x27;2到20列 Sheets("BOM1导出不匹配项").Cells(i, j).Clear If (Sheets("标准数据").Cells(i, j).Text) <> (Sheets("BOM1数据").Cells(i, j).Text) Then &#x27;两个表格数据做对比 Sheets("BOM1比对结果").Cells(i, j) = (Sheets("标准数据").Cells(i, j).Text) + "和" + (Sheets("BOM1数据").Cells(i, j).Text) + "数值不匹配" &#x27;存在时进行标记,并在18列写已存在" Sheets("BOM1比对结果").Cells(i, j).Interior.Color = 35500 Sheets("BOM1导出不匹配项").Cells(i, j) = (Sheets("标准数据").Cells(i, j).Text) + "和" + (Sheets("BOM1数据").Cells(i, j).Text) + "数值不匹配" Sheets("BOM1导出不匹配项").Cells(i, j).Interior.Color = 65535 End If Next j Next i End Sub Sub 数据比较2() Sheets("标准数据").Select Range("A1:K500").Select Selection.Copy Sheets("BOM2比对结果").Select Range("A1:K500").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Dim i As Integer Dim j As Integer For i = 2 To 500 &#x27;2到500行 For j = 2 To 20 &#x27;2到20列 Sheets("BOM2导出不匹配项").Cells(i, j).Clear If (Sheets("标准数据").Cells(i, j).Text) <> (Sheets("BOM1数据").Cells(i, j).Text) Then &#x27;两个表格数据做对比 Sheets("BOM2比对结果").Cells(i, j) = (Sheets("标准数据").Cells(i, j).Text) + "和" + (Sheets("BOM1数据").Cells(i, j).Text) + "数值不匹配" &#x27;存在时进行标记,并在18列写已存在" Sheets("BOM2比对结果").Cells(i, j).Interior.Color = 35500 Sheets("BOM2导出不匹配项").Cells(i, j) = (Sheets("标准数据").Cells(i, j).Text) + "和" + (Sheets("BOM1数据").Cells(i, j).Text) + "数值不匹配" Sheets("BOM2导出不匹配项").Cells(i, j).Interior.Color = 21000 End If Next j Next i End Sub 下图是将对应的数据导入后的处理结果:单独导出不匹配项 比对后结果对此,小伙伴们有什么意见或建议呢?欢迎留言讨论!喜欢的话就帮忙点个赞关注一下吧,谢谢大家,祝大家生活愉快!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接