Board logo

標題: 搜尋 配對 輸出值 [打印本頁]

作者: mirandachou    時間: 2015-10-20 15:10     標題: 搜尋 配對 輸出值

大家好!
想要請教前輩們一些問題><
最近開始學習VBA需要整理資料

[attach]22221[/attach]

如副圖
想要把資料類型整理成右側
有使用過VLookup去搜尋A行 不過卻只能[A]區塊
又加上[A],[B],[C] 資料量不一樣
如果搜尋到沒有的參數會主動把值輸入為  n/a

不知道大大們有沒有什麼方法可以更便捷的把資料整理成右側
真的感幾萬分!!!  {:2_38:}
作者: 准提部林    時間: 2015-10-20 17:01

本帖最後由 准提部林 於 2015-10-20 17:06 編輯
  1. Sub Macro3()
  2. Dim j&, C&, Arr, Brr, X&, Y&, T$, xD
  3. With Range([A1], [A65536].End(xlUp)(1, 2))
  4.    Arr = .Value
  5.    '_範圍納入陣列
  6.    C = Application.CountIf(.Columns(1), "[*]") + 1
  7.    '_計算〔項目〕個數
  8. End With
  9.  
  10. ReDim Brr(UBound(Arr), C)
  11. Set xD = CreateObject("Scripting.Dictionary")
  12.  
  13. For j = 1 To UBound(Arr)
  14.    T = Arr(j, 1): If T = "" Then GoTo 101
  15.    '儲存格值以 T 變數代之
  16.    If Left(T, 1) = "[" Then X = X + 1: Brr(0, X) = T: GoTo 101
  17.    '_儲存格若為〔項目〕,向右累計欄位,並加入項目
  18.    If xD(T) = 0 Then Y = Y + 1: xD(T) = Y: Brr(Y, 0) = T
  19.    '_若為〔明細〕,向下累計列位,並加入明細
  20.    Brr(xD(T), X) = Val(Arr(j, 2))
  21.    '_帶入配對值
  22. 101: Next j
  23.  
  24. [F7].Resize(Y + 1, X + 1) = Brr
  25. '_填入陣列內容
  26. [G8].Resize(Y, X).Replace "", "n/a"
  27. '_將〔空格〕取代為〔n/a〕
  28. End Sub
複製代碼

 
 
只能大約註解,請自行研究,恕不再說明∼∼ 
作者: hcm19522    時間: 2015-10-20 19:12

http://blog.xuite.net/hcm19522/twblog/351161948
函數 參考即可
作者: mirandachou    時間: 2015-10-21 12:45

 
 
只能大約註解,請自行研究,恕不再說明∼∼ 
准提部林 發表於 2015-10-20 17:01



真的非常感謝你!!
可以成功擷取出來了 :)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)