欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
VBA字典
  • 創(chuàng )建字典對象
'后期綁定:方便代碼在其他電腦上運行,推薦。dim dic as objectSet dic = CreateObject("scripting.dictionary")'前期綁定:可以直接聲明字典對象,有對象屬性和方法的提示,但在其他沒(méi)有勾選引用的電腦上無(wú)法正常運行。'引用勾選:VBE窗體-工具-引用-勾選‘Microsoft Scripting Runtime’dim dic as New dictionary

  • 獲取字典的鍵、值,字典計數,刪除,判斷鍵是否存在于字典
with activesheet	'dic.count:字典計數,字典中一共有多少條記錄;	'dic.keys:字典的鍵,寫(xiě)入單元格以行寫(xiě)入,如需以列寫(xiě)入單元格,調用工作表函數transpose轉置;	.cells(1,1).resize(dic.count,1) = application.worksheetfunction.transpose(dic.keys)	'清除工作表單元格內容	.cells.clearcontents		'dic.items:字典的值;	.cells(1,1).resize(1,dic.count) = dic.items	'判斷某內容是否存在與字典的鍵中	if dic.exists("內容") then debug.print "字符串‘內容’存在于字典的鍵中"		'清空字典,有時(shí)候其他過(guò)程也需要使用字典,當前過(guò)程已經(jīng)使用完了,但我們又不想重新創(chuàng  )建字典對象,這時(shí)候我們可以public字典全局變量,再清空字典,供新的過(guò)程使用該字典對象。	dic.removeall	'清除單個(gè)字典鍵-值對,key是字典的某個(gè)需要刪除的鍵	dic.remove keyend with

  • 字典常用方法
  1. 去重
dim dic as objectdim arrdim stSet dic = CreateObject("scripting.dictionary")arr = array("可樂(lè )","雪碧","雞翅",,"可樂(lè )","漢堡包","雞翅")for each st in arr	'字典的鍵是不能重復的,重復導入字典只會(huì )存在一個(gè),可以利用字典這點(diǎn)特性去重。	'這里不需要字典的值,設置為空字符串或其他數值都可以。	dic(st) = ""nextactivesheet.range("a1").resize(dic.count,1) = application.worksheetfunction.transpose(d.keys)
  1. 實(shí)現sumifs條件求和
Sub dic_sumif()Application.ScreenUpdating = FalseDim dic As ObjectDim arrDim i As ByteSet dic = CreateObject("scripting.dictionary")With ActiveSheet    arr = .UsedRange    For i = 2 To UBound(arr)    	'dic(arr(i,1))沒(méi)有值是默認是0,通過(guò)下面方法對每一個(gè)水果的銷(xiāo)量進(jìn)行累加。        dic(arr(i, 1)) = dic(arr(i, 1)) + arr(i, 2)    Next    '使用copy方法,將表頭復制到e1,f1單元格    .Range("a1:b1").Copy .Range("e1")    '字典鍵去重縱向寫(xiě)入到單元格    .Cells(2, "e").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(dic.keys)    For i = 2 To dic.Count + 1    	'循環(huán)輸入字典鍵對應的值到f列        .Cells(i, "f").Value2 = dic(.Cells(i, "e").Value2)    NextEnd Withset dic = NothingApplication.ScreenUpdating = TrueEnd Sub

效果如下圖:


3. 計數
如果對上面水果種類(lèi)進(jìn)行計數:countifs,只需要將分類(lèi)匯總的值改為數值1即可,每出現一次‘+1’

dic(arr(i, 1)) = dic(arr(i, 1)) + 1'在上面代碼中添加下這條,修改下表頭range("f1").value2 = "計數"

效果如下圖:


4. 匹配

  • 這個(gè)應該是使用字典應用最多的了,需要注意的是,如果使用單元格寫(xiě)入到字典,單元格同時(shí)也包含格式等信息,如果只需要單元格的值,要使用單元格.value2方法,同時(shí),字典的值也可以是數組。
  • 數據源:
  • 目標:匹配‘李白’和‘后羿’的身高和體重
  • 代碼如下:
Sub data_match()Application.ScreenUpdating = FalseDim dic As ObjectDim arrDim i As ByteSet dic = CreateObject("scripting.dictionary")With ActiveSheet    arr = .Cells(1, 1).CurrentRegion    For i = 2 To UBound(arr)    	'這里字典的值,用的是array數組,方便我們一下匹配多個(gè)數據,省去再創(chuàng  )建字典對象麻煩。        dic(arr(i, 1)) = Array(arr(i, 2), arr(i, 3))    Next    For i = 2 To .Cells(1, "e").End(xlDown).row        .Cells(i, "f").Resize(1, 2) = dic(.Cells(i, "e").Value2)    NextEnd Withset dic = NothingApplication.ScreenUpdating = TrueEnd Sub

效果如下:
我在這里加入了‘妲己’,遍歷用字典去匹配了,但是字典并沒(méi)有‘妲己’這個(gè)key,匹配出來(lái)是空,并沒(méi)有報錯,大家不用擔心字典沒(méi)有對應key匹配而出錯這種情況,這樣只會(huì )將結果輸出為空。~
如果需要匹配的姓名后面有之前填寫(xiě)的身高和體重信息,但是載入字典的數據源并沒(méi)有這個(gè)人的信息,我們在遍歷匹配時(shí),又不想使身高和體重被替換為空,這時(shí)候可以結合dic.exisst語(yǔ)句,判斷姓名是否存在于字典的keys中,再輸出匹配結果。


5. key的組合和分割

dim arrdim i,row as longdim d as objectdim keyset d = createobject("scripting.dictionary")with thisworkbook	arr = .sheets(1).usedrange	for i = 2 to ubound(arr)		d(join(array(arr(i,1),arr(i,2),arr(i,3)),"|")) = arr(i,4)	next		with .sheets("輸出")		row = 2		for each key in d.keys			.cells(row,4).value = d(key)			.cells(row,1).resize(1,3) = split(key,"|")			row = row + 1		next	end withend with
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Excel中字典應用綜合示例
字典用法集錦
“VBA”學(xué)習筆記
來(lái)自【Excel完美論壇】
[學(xué)習筆記-VBA-018]特殊的數組——字典
VBA進(jìn)階|在VBA中使用字典進(jìn)行數據統計與查詢(xún)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久