Excel 信息对比_数组版
Sub LOOKUP_UChur()
Dim i As Long '=== sourceWorksheet = 数据源表名称
Dim sourceWorksheet As Worksheet
Dim taskWorkSheet As Worksheet
Dim bgnTime, endTime As Date '*********************************************
' [1] ------ 数据源表 *** Sheet 名称
Set sourceWorksheet = ThisWorkbook.Worksheets("低保数据")
Const swsh_KeyColName = "B" ' 关键列 , 身份证号所在的列名称
Const swsh_BeginRow = ' 开始行号 ' [2] ------ 任务表 *** Sheet 名称
Set taskWorkSheet = ThisWorkbook.Worksheets("扶贫和低保比对")
Const twsh_KeyColName = "F" ' 关键列号 , 身份证号所在的列号
Const twsh_BeginRow = ' 开始行号 '*********************************************
bgnTime = Now()
Dim arrKeyData() As Variant ' 这种声明方式是声明一个动态数组
arrKeyData = sourceWorksheet.Range(swsh_KeyColName & swsh_BeginRow & ":" & swsh_KeyColName & sourceWorksheet.UsedRange.Rows.Count) For i = twsh_BeginRow To taskWorkSheet.UsedRange.Rows.Count
Debug.Print "第 ["; i & "]行: 已找到数据:" & taskWorkSheet.Range(twsh_KeyColName & i).Text
DoEvents curRow = GetRowNo(arrKeyData, taskWorkSheet.Range(twsh_KeyColName & i).Text)
If curRow > Then
'[3] ???? ===== 任务表 J --> 数据源 A
taskWorkSheet.Range("G" & i) = sourceWorksheet.Range("C" & swsh_BeginRow + (curRow - )).Text
End If
Next i endTime = Now()
MsgBox ("任务已完成, 处理所需的时间: " & Application.WorksheetFunction.Text(DateDiff("s", bgnTime, endTime) / / , "[H]:mm:ss") & " 秒 " & vbCrLf _
& "*****************************" & vbCrLf & bgnTime & vbCrLf & endTime) DoEvents End Sub Function GetRowNo(ByRef pArrKeyData As Variant, pFindValue As String) As Long GetRowNo =
' curRow = Application.Match(pFindValue, pArrKeyData, 0)
'-- Application.Match 所需的时间比较多 6 秒
'-- 下面的循环方式查找数组 所需的时间 2 秒 If Not (UBound(pArrKeyData) > ) Then Exit Function Dim j As Long
For j = LBound(pArrKeyData) To UBound(pArrKeyData)
If Not (IsError(pArrKeyData(j, ))) Then
If pArrKeyData(j, ) = pFindValue Then
GetRowNo = j
Exit Function
End If
End If Next j Exit Function End Function
Excel 信息对比_数组版的更多相关文章
- DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版
前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...
- DSAPI HTTP监听服务端与客户端_指令版
前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...
- yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并原数组信息---案例
yii2通过foreach循环遍历在一个用户组中取出id去另一表里查寻信息并且带着信息合并元数组信息---案例 public function actionRandomLists(){ //查询到了所 ...
- JavaWeb_(session和application)用户登录注册模板_进阶版
用户登录注册模板_基础版 传送门 用户登录注册模板进阶版 添加了获得获得当前登录用户信息及存储登录人数 用户登录后,在首页.注册页.登录页显示登录用户信息和存储登录人数信息 目录结构 <%@pa ...
- HDU 4287 Intelligent IME(字典树数组版)
Intelligent IME Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 1277 AC自动机入门(指针版和数组版)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1277 推荐一篇博客(看思路就可以,实现用的是java): https://www.cnblogs.co ...
- Insert插入不同的列数量,统计信息对比
一.实验目的: Insert插入表中相同的行数量,不同的列数量,通过10046 和autotrace工具对比查看逻辑读.物理读.time数据,并得出相应结论 二.测试 2.1测试流程: =>[为 ...
- php 数据集转换树、递归重组节点信息多维数组(转)
一.将数据集转换成树 /** * 将返回的数据集转换成树 * @param array $list 数据集 * @param string $pk 主键 * @param string $pid 父节 ...
- 部分Web服务器信息对比
本文参考wikipedia的Web服务器比较页面的数据,选取了其中自己感兴趣的Web服务器的信息进行了对比,包括,Apache HTTP Server.Apache Tomcat.Nginx.Catt ...
随机推荐
- android的通知栏的实现
package com.example.mynotification; import android.os.Bundle; import android.app.Activity; import an ...
- 温故而知新 chrome 浏览器一些小技巧、小细节
1.console 模块如何换行? shift + enter即可. 2.有时候 network 没有分类标签(xhr.img.js.css)怎么办? 按下这个图标就可以显示出来了
- Redis配置和常用命令
redis.conf配置文件: 引用 #是否作为守护进程运行 daemonize yes #配置pid的存放路径及文件名,默认为当前路径下 pidfile redis.pid #Redis默认监听端口 ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
- 进程控制函数(3)-getsid()和setsid()获取当前会话和建立新会话
pid_t setsid(void) 1.调用进程不能是进程组组长,该进程变成新会话首进程(session header) 2.该进程成为一个新进程组的组长进程. 3.需有root权限(ubuntu不 ...
- CWidgetMgr---cpp
#include "WidgetMgr.h" #include "XWidget.h" #include "Config.h" #inclu ...
- 102. Linked List Cycle【medium】
Given a linked list, determine if it has a cycle in it. Example Given -21->10->4->5, tail ...
- MongoDB Replica Set搭建集群
MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点 ...
- SAP安装前添加虚拟网卡步骤
添加虚拟网卡: 打开控制面版中的设备管理器 点击菜单栏上的[操作(A)] 选择[添加过时硬盘件] 选择[ 安装我手动从列表选择的硬件(高级)(M) ],点击[下一步] 选择[网络适配器],点击[下一步 ...
- zepto与jquery冲突
公司项目中一直用的都是zepto,但是jQuery扩展的插件比较多. jQuery有一个方法noConflict(),可以把jQuery的$改掉.var aa = $.noConflict();就用a ...