VBA EXCEL 工作簿之间相互操作
2015-07-22 14:00
666 查看
说明:
各个班级花名册excel工作簿,一个余额汇总工作簿,在余额汇总工作簿中有多个表,每个表代表一个班级中每个学生基本信息和余额情况;
为了检测班级花名册中的所有学生在余额统计表中是否都有对应的基本信息和余额统计情况,即班级花名册中的所有学生是否在余额统计表中都存在;
班级花名册工作簿文件列表:
余额信息统计工作簿:
源代码:
各个班级花名册excel工作簿,一个余额汇总工作簿,在余额汇总工作簿中有多个表,每个表代表一个班级中每个学生基本信息和余额情况;
为了检测班级花名册中的所有学生在余额统计表中是否都有对应的基本信息和余额统计情况,即班级花名册中的所有学生是否在余额统计表中都存在;
班级花名册工作簿文件列表:
余额信息统计工作簿:
源代码:
'联表对比设置单元格样式 Function CheckAndAddStyle() '遍历工作表,逐个班级进行检车 Dim sheetToWorkBookName As String Dim nameIndexInBJ As Integer '班级花名册中学生姓名所在列 For Each sheet In ThisWorkbook.Sheets '获取该工作簿中所有表 '寻找班级工作簿 sheetToWorkBookName = CStr(2014) + Left(sheet.Name, 2) + ".xls" Dim myApp As New Application Dim sh As Worksheet Dim Temp As String Temp = ThisWorkbook.Path & "\" & sheetToWorkBookName myApp.Visible = False Set sh = myApp.Workbooks.Open(Temp).Sheets(1) '获取班级姓名所在列 nameIndexInBJ = GetNameIndex(sh) '从sh工作表的第二行开始逐渐检索姓名 'sheet为余额汇总表,sh 为班级花名册表 For bjRow = 2 To sh.UsedRange.Rows.Count Dim yeRow As Integer For yeRow = 5 To sheet.UsedRange.Rows.Count If sh.Cells(bjRow, nameIndexInBJ).Value = sheet.Cells(yeRow, 1) Then sh.Cells(bjRow, nameIndexInBJ).Interior.ColorIndex = 42 ' 存在则在班级花名册中姓名单元格设置为绿色 Exit For End If Next '没有找到,在班级花名册中作上记号 If yeRow = sheet.UsedRange.Rows.Count + 1 Then sh.Cells(bjRow, nameIndexInBJ).Interior.ColorIndex = 46 '设置单元格格式,46是excel颜色代码表示红色 End If Next myApp.Quit Set sh = Nothing Set myApp = Nothing Next End Function '获取姓名所在列 Function GetNameIndex(sheet As Worksheet) As Integer Dim nameIndex As Integer For i = 1 To sheet.UsedRange.Columns.Count If sheet.Cells(1, i).Value = "姓名" Then nameIndex = i 'MsgBox CStr(nameIndex) + " " + sheet.Cells(1, i).Value Exit For End If Next GetNameIndex = nameIndex '返回值 End Function
相关文章推荐
- 项目开发:电话留言软件(20050717)
- 利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件
- 利用VBScript在隐藏窗口中运行应用程序
- 【VBA研究】用VBA取得EXCEL任意列有效行数
- 在VB6.0中怎么实现escape和unescape
- vb写bho
- vbMHWB控件同webbrowser一样
- VB获取IE8地址栏的URL
- VB POST数据
- VB与DDE进程通信
- C# 6.0 和VB.NET 14 新特性(翻译)
- 机房收费系统基本流程
- Opengl ES IBO(索引缓冲区) VBO(顶点缓冲区)创建一个立方体
- vba 中的异常处理
- 关于在64位win7下运行Virtualbox安装系统时出错(提示VBoxDD.DLL错误)的解决
- 简易配置文件的读取(VB.NET)
- VB6.0程序图标
- 解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
- 【VBS】发邮件
- VB .bas文件生成dll并且调用