返回列表 上一主題 發帖

請教字串中的資料如何比對而擷取相對欄位的資料?

請教字串中的資料如何比對而擷取相對欄位的資料?

請教字串中的資料如何比對而擷取相對欄位的資料?
請看附檔.........謝謝指導

Book1.rar (4.71 KB)

目前小學生期待他日進國中

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

執行前:


執行結果:



Option Explicit
Sub TEST()
Dim Brr, Crr, Y, Z, i&, T1$, T2$
'↑宣告變數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y變數是 字典
Brr = Range([B10], [B65536].End(3))
'↑令Brr變數是 二維陣列,以B欄儲存格值帶入
Crr = Range([H22], [G65536].End(xlUp))
'↑令Crr變數是 二維陣列,以G~H欄儲存格值帶入
For i = 1 To UBound(Crr)
'↑設順迴圈 (拆解組別對應成員(G欄),裝入Y字典中)
   T1 = Crr(i, 1): T2 = Crr(i, 2)
   '↑令變數承裝迴圈陣列值
   If (T1 = "") * (T2 = "") Then GoTo i01
   '↑忽略空格
   For Each Z In Split(T1, ",")
   '↑設逐項迴圈!令Z變數是 (G欄)值以","分割的一維陣列子
      If Z = "" Then GoTo z01
      '↑如果Z變數是空字元!就跳到z01標示位置繼續執行
      Y(Z) = T2
      '↑令以Z變數當key,item是T2變數(組名)
z01: Next
i01: Next
For i = 1 To UBound(Brr)
'↑設順迴圈 (將欲辨識的成員當key,查Y字典得到組名)
   Brr(i, 1) = Y(Brr(i, 1) & "")
   '↑令查Y字典得到組名覆蓋掉原來Brr的成員
Next
[L10].Resize(UBound(Brr), 1) = Brr
'↑令Brr陣列值從[L10]開始寫入儲存格中
Set Y = Nothing: Erase Brr, Crr
'↑令釋放變數
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

小學生無法下載學習,謝謝
  

TOP

回復 2# oobird

可以了......謝謝版主指導
目前小學生期待他日進國中

TOP

本帖最後由 oobird 於 2010-11-21 17:31 編輯

=INDEX(H$22:H$24,MATCH(TRUE,NOT(ISERROR(FIND(","&B10&",",","&G$22:G$24&","))),0))

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題