VBA中的VLOOKUP

Sub 優(yōu)化()
t = Timer
Dim i, j, k, m
Dim arr()
Dim arr2
Dim Rng As Object, S2 As Object
Dim R2, R3 As Long
Application.ScreenUpdating = False '停止更新屏幕
'清除原訂單狀態(tài)
Set S2 = Sheet2
R2 = S2.UsedRange.Rows.Count
For i = 20 To 83 Step 9
If Rng Is Nothing Then
Set Rng = S2.Range(S2.Cells(2, i), S2.Cells(R2, i))
Else
Set Rng = Union(Rng, S2.Range(S2.Cells(2, i), S2.Cells(R2, i)))
End If
Next
Rng.ClearContents
Set d = CreateObject("scripting.dictionary") '建立字典
Sheet6.Select
arr() = Sheet6.Range("a1:b" & Sheet6.Range("a1048576").End(xlUp).Row)
For i = 1 To Sheet6.Range("a1048576").End(xlUp).Row
d(arr(i, 1)) = arr(i, 2)
Next
R2 = Sheet2.UsedRange.Rows.Count
R3 = Sheet3.UsedRange.Rows.Count
k = 0
Sheet2.Select '匹配年度
For m = 1 To 8
arr2 = Range(Cells(1, 19 + k), Cells(R2, 19 + k)).Value
ReDim arr3(2 To R2, 1 To 1)
For j = 2 To R2
If d.exists(arr2(j, 1)) Then '提出字典中內(nèi)容,進行比對
arr3(j, 1) = d(arr2(j, 1))
End If
Next
Cells(2, 20 + k).Resize(R2 - 1, 1).Value = arr3()
k = k + 9
Next
Sheet3.Select '匹配結轉(zhuǎn)
Sheet3.Range("p1:p" & Sheet3.Range("g1048576").End(xlUp).Row).ClearContents
Sheet3.Range("h1:h" & Sheet3.Range("g1048576").End(xlUp).Row).Copy
Sheet3.Range ("p1")
Sheet3.Range("h1:h" & Sheet3.Range("g1048576").End(xlUp).Row).ClearContents
Sheet3.Range("h1") = Sheet6.Name
arr2 = Range(Cells(1, 7), Cells(R3, 7)).Value
ReDim arr3(2 To R3, 1 To 1)
For j = 2 To R3
If d.exists(arr2(j, 1)) Then '提出字典中內(nèi)容壶唤,進行比對
arr3(j, 1) = d(arr2(j, 1))
End If
Next
Cells(2, 8).Resize(R3 - 1, 1).Value = arr3
MsgBox Format(Timer - t, "0.000000")
Application.ScreenUpdating = True '開啟更新屏幕End Sub
End Sub

這是網(wǎng)絡大神優(yōu)化之前的


Sub 搞事情()
t = Timer
Dim i, j, k, m
Dim arr()

'清除原訂單狀態(tài)
Sheet2.Range("t2:t" & Sheet2.Range("t1048576").End(xlUp).Row).ClearContents
Sheet2.Range("ac2:ac" & Sheet2.Range("ac1048576").End(xlUp).Row).ClearContents
Sheet2.Range("al2:al" & Sheet2.Range("al1048576").End(xlUp).Row).ClearContents
Sheet2.Range("au2:au" & Sheet2.Range("au1048576").End(xlUp).Row).ClearContents
Sheet2.Range("bd2:bd" & Sheet2.Range("bd1048576").End(xlUp).Row).ClearContents
Sheet2.Range("bm2:bm" & Sheet2.Range("bm1048576").End(xlUp).Row).ClearContents
Sheet2.Range("bv2:bv" & Sheet2.Range("bv1048576").End(xlUp).Row).ClearContents
Sheet2.Range("ce2:ce" & Sheet2.Range("ce1048576").End(xlUp).Row).ClearContents

Set d = CreateObject("scripting.dictionary") '建立字典
Sheet6.Select
arr() = Sheet6.Range("a1:b" & Sheet6.Range("a1048576").End(xlUp).Row)
For i = 1 To Sheet6.Range("a1048576").End(xlUp).Row
d(arr(i, 1)) = arr(i, 2)
Next

Sheet2.Select '匹配年度
For m = 1 To 8
    For j = 1 To Sheet2.Range("a1048576").End(xlUp).Row
    If d.exists(Cells(j, 19 + k).Value) Then '提出字典中內(nèi)容纯续,進行比對
    Cells(j, 20 + k) = d(Cells(j, 19 + k).Value)
    End If
    Next
    k = k + 9
Next

Sheet3.Select '匹配結轉(zhuǎn)
Sheet3.Range("p1:p" & Sheet2.Range("p1048576").End(xlUp).Row).ClearContents
Sheet3.Range("h1:h" & Sheet2.Range("p1048576").End(xlUp).Row).Copy Sheet3.Range("p1")
Sheet3.Range("h1:h" & Sheet2.Range("p1048576").End(xlUp).Row).ClearContents
Sheet3.Range("h1") = Sheet6.Name

For j = 1 To Sheet3.Range("g1048576").End(xlUp).Row
If d.exists(Cells(j, 7).Value) Then '提出字典中內(nèi)容齐板,進行比對
Cells(j, 8) = d(Cells(j, 7).Value)
End If
Next

MsgBox Format(Timer - t, "0.000000")
End Sub

來源網(wǎng)絡碳胳,僅供學習

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市畜挨,隨后出現(xiàn)的幾起案子贰盗,更是在濱河造成了極大的恐慌许饿,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舵盈,死亡現(xiàn)場離奇詭異陋率,居然都是意外死亡球化,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門瓦糟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筒愚,“玉大人,你說我怎么就攤上這事菩浙〕膊簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵劲蜻,是天一觀的道長陆淀。 經(jīng)常有香客問我,道長先嬉,這世上最難降的妖魔是什么轧苫? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮疫蔓,結果婚禮上含懊,老公的妹妹穿的比我還像新娘。我一直安慰自己鳄袍,他們只是感情好绢要,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布吏恭。 她就那樣靜靜地躺著拗小,像睡著了一般。 火紅的嫁衣襯著肌膚如雪樱哼。 梳的紋絲不亂的頭發(fā)上哀九,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音搅幅,去河邊找鬼阅束。 笑死,一個胖子當著我的面吹牛茄唐,可吹牛的內(nèi)容都是我干的息裸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沪编,長吁一口氣:“原來是場噩夢啊……” “哼呼盆!你這毒婦竟也來了?” 一聲冷哼從身側響起蚁廓,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤访圃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后相嵌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腿时,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡况脆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了批糟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片格了。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跃赚,靈堂內(nèi)的尸體忽然破棺而出笆搓,到底是詐尸還是另有隱情,我是刑警寧澤纬傲,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布满败,位于F島的核電站,受9級特大地震影響叹括,放射性物質(zhì)發(fā)生泄漏算墨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一汁雷、第九天 我趴在偏房一處隱蔽的房頂上張望净嘀。 院中可真熱鬧,春花似錦侠讯、人聲如沸挖藏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膜眠。三九已至,卻和暖如春溜嗜,著一層夾襖步出監(jiān)牢的瞬間宵膨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工炸宵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辟躏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓土全,卻偏偏與公主長得像捎琐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子裹匙,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 字典 補充說明 上面這段涉及到了數(shù)組瑞凑、兩種循環(huán)方式,對初學者來說還是比較難理解的幻件,所以改了一個稍微簡單一點的版本拨黔。...
    慕海生閱讀 1,138評論 0 0
  • 華為官方今日宣布篱蝇,華為Mate 20 X 獲得中國首張5G終端電信設備進網(wǎng)許可證贺待,同時該機也是同時支持SA/NSA...
    IC全球購閱讀 831評論 0 1
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭零截,有人歡樂有人憂愁麸塞,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53
  • 人工智能是什么涧衙?什么是人工智能哪工?人工智能是未來發(fā)展的必然趨勢嗎?以后人工智能技術真的能達到電影里機器人的智能水平嗎...
    ZLLZ閱讀 3,778評論 0 5
  • 首先介紹下自己的背景: 我11年左右入市到現(xiàn)在,也差不多有4年時間撤嫩,看過一些關于股票投資的書籍偎捎,對于巴菲特等股神的...
    瞎投資閱讀 5,726評論 3 8