到财务走了一圈,正好看到一位同事正在对两个Excel文件进行比较。两个文件的内容大致如此(列出部分列名):
主贷身份证 |
主贷人 |
贷款余额 |
440602**** |
李*瑜 |
¥35,000 |
360102**** |
李*亮 |
¥81,359 |
440202**** |
李*英 |
¥48,125 |
440682**** |
白*娟 |
¥1117,50 |
财务同事的需求是:找出两个表中贷款人身份证一样,但贷款余额不一致的数据。因量比较大,手工去找余额不一致相当麻烦。对财务人员来说可能经常会碰到这样的问题,痛苦!我第一反应是要给她想个办法,简单处理这种繁琐的工作。于时随手写了以下VBA来实现。
第一步,先将要核对的两个文件放到一个文件中,一个放在Sheet1,另一个放在Sheet2中。
第二步,加个按钮,写以下VBA事件:
Private Sub CommandButton1_Click()
Dim objCon, objDataSet, sqlStr
Set objCon = CreateObject("ADODB.Connection")
Set objDataSet = CreateObject("adodb.recordset")
objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;imex=1;';Data Source=" & ThisWorkbook.FullName
sqlStr = "select a.* from [Sheet1$] a left join [Sheet2$] b on (a.[主贷身份证]=b.[主贷身份证]) where a.[贷款余额]<>b.[贷款余额]"
Set objDataSet = objCon.Execute(sqlStr)
Sheet1.[e1:g1000].ClearContents '清除这个区域
Sheet1.[e1].CopyFromRecordset objDataSet '将不致的写到E列
objDataSet.Close
objCon.Close
Set objDataSet = Nothing
Set objCon = Nothing
End Sub
按下按钮,不一致的数据全部找了出来。需求和解决办法虽简单,但可以帮助到很多不懂VBA的朋友,供参考。
分享到:
相关推荐
excel VBA实现两个excel文件所有worksheet单元格做对比,并找出差异,将差异进行着重显示,对于数据量非常在和对数据要求高的场景将会大大缩减人工对比的时间
要对比两个Excel文件的数据,我们可以按照以下步骤进行: 1. **打开Excel文件**:使用Workbooks.Open方法打开两个需要对比的Excel文件。例如: ```vba Dim wb1 As Workbook, wb2 As Workbook Set wb1 = ...
本篇将详细讲解如何使用VBA来比较两个配置文件。 首先,让我们了解VBA的基本概念。VBA是基于Visual Basic编程语言的一个版本,专用于Microsoft Office套件。它提供了宏录制和脚本编写功能,使得用户可以通过编程...
类似地,`Workbooks.Open("PDF的路径")`是Excel VBA中的一个方法,通常用于打开Excel工作簿,但如果你安装了支持的ActiveX控件,它也可以用来打开PDF文件。 下面是一个示例脚本,展示了如何结合使用`CreateObject`...
在Excel VBA(Visual Basic for Applications)中,计算两个时间间隔并精确到天、时、分、秒是一项常见的任务,特别是在处理大量数据或自动化工作流程时。VBA提供了丰富的日期和时间函数,使得我们可以轻松地进行...
在"EXCELVBA贝塞尔曲线及插值.pdf"文件中,可能详细介绍了如何在VBA环境中实现这些算法,并提供了示例代码。通过阅读和理解这份文档,你可以掌握如何在Excel VBA中绘制出符合需求的贝塞尔曲线,并进行数据插值。 ...
具体实现方法如下: 1. **定义数据结构**:明确Excel中哪些数据对应AutoCAD中的何种图形元素。 2. **编写转换逻辑**:编写VBA代码实现从Excel读取数据,并按需转换为AutoCAD图形。 3. **绘制图形**:在AutoCAD中...
准备工作完成后,通过VBA编程将两个工作表链接起来,并实现自动填充个人信息到证件模板中的功能。 VBA编程的具体实现可以通过定义过程或函数来完成。例如,定义一个子程序(Sub)来指定宏的操作流程。在这个过程中...
该程序利用Winsock控件实现了TCP/IP通信,从而让两个Excel实例之间能够进行实时的信息交换,类似于QQ等即时通讯软件的基本功能。 首先,让我们深入了解一下Winsock控件。Winsock是Windows操作系统中的一个组件,它...
在描述中提到的VBA实现AutoCAD与Excel的通信,本质上是通过VBA编程语言编写宏(Macro),来实现这两个软件的数据交换和任务自动化。要实现这一点,需要掌握一些关键点: 1. VBA基础知识:了解VBA的基本语法、数据...
下面是一个简单的VBa代码示例,用于比对两个工作表中的数据: ```vb Sub CompareSheets() Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim cell1 As Range, cell2 As Range ...
本项目"EXCEL+VBA实现会议安排"正是结合了这两种工具的优势,以满足特定的工作需求。 首先,我们要理解会议安排的基本要求。通常,会议安排需要包括参会人员的姓名、部门、职务等信息,以及会议的时间、地点、议题...
在日常工作中,我们经常会遇到需要将多个Excel文件合并成一个文件的情况。手动操作不仅效率低下,而且容易出错。这时,利用Excel VBA(Visual Basic for Applications)进行自动化处理便显得尤为重要。本文将通过...
VBA学习笔记本(二)——两个表格数据匹配_DEMO 将excel中两个工作表中,数据进行一键同步的通用方法
在Excel VBA中,方法和属性是两个核心概念,它们构成了VBA编程的基础。 **方法** 是对象能够执行的动作或操作。例如,`Range`对象的`Select`方法用于选取指定范围的单元格,`Worksheets`对象的`Add`方法可以添加新...
本教程主要聚焦于Excel VBA和Word VBA,这两个工具在日常办公中有着广泛的应用。 Excel VBA教程: Excel VBA使你能创建宏,这是一种可以执行一串命令的程序,用于处理大量数据和实现复杂的计算。通过学习Excel VBA...
2. EXCEL表格用VBA更新双色球数据源代码.xlsm:这是一个启用宏的Excel文件,其中包含了VBA代码。运行宏后,它应该能自动更新双色球数据。 为了实现这一目标,VBA代码可能包含以下几个部分: - Sub Main:主程序,...
了解如何定义和调用这两个类型的程序是VBA编程的核心。 5. **事件驱动编程**:Excel中的VBA可以响应用户的操作或事件,如打开工作簿、关闭工作簿、点击按钮等。编写事件处理程序可以实现交互式应用。 6. **错误...
在这个特定的案例中,我们关注的是如何使用VBA从Excel文件导入数据到SQL Server数据库。这个过程涉及到几个关键知识点,包括VBA的基本语法、Excel对象模型以及与SQL Server的交互。 首先,我们需要了解VBA的基本...
9. **Excel公式**:除了VBA外,Excel的内置公式也可以用来辅助计算,比如`NETWORKDAYS()`计算两个日期之间的工作日数,`EOMONTH()`获取指定月份的最后一天等。 10. **数据持久化**:如果要保存用户的记事,可以考虑...