標題:
[發問]
下拉式選單撈取資料
[打印本頁]
作者:
v03586
時間:
2016-7-24 17:50
標題:
下拉式選單撈取資料
本帖最後由 v03586 於 2016-7-24 17:52 編輯
我想利用XCEL 製作一個 客戶訂單資訊, 不知道如何使用?
VLOOKUP不太熟悉,請求幫忙
下拉式選單會製作, 但是不知道怎麼去從資料庫撈資料出來
例如從B1 選擇客戶代碼
[attach]24737[/attach]
他會從資料庫頁面去選取資料, 把我下拉式選單選的A 客戶代碼的資訊對應欄位作顯示
[attach]24736[/attach]
因為每次分類會不一樣, 所以中間有F,G,H 欄 是我自己輸入不知道能不能完成
如果不能也可以把Remark 欄位移到 F欄位, G,H,I 欄變成分類1,2,3
[attach]24738[/attach]
作者:
c_c_lai
時間:
2016-7-25 07:01
回復
1#
v03586
我是應用 Find() 來做出這一範例, 不過
我倒希望看看使用 VLookup 如何達成。
[attach]24742[/attach]
作者:
c_c_lai
時間:
2016-7-25 07:05
回復
1#
v03586
ThisWorkbook:
Option Explicit
Private Sub Workbook_Open()
Dim rng As Range, cts As Integer
Dim sh As Worksheet, dic As Object
Dim m As Variant
Set dic = CreateObject("scripting.dictionary")
Set sh = Sheets("資料庫")
With Sheets("範例測試")
With .ComboBox1
.Clear
' .Value = ""
.ColumnCount = 1
.ColumnWidths = "80"
.ColumnHeads = False
For Each rng In Range(sh.[A2], sh.[A2].End(xlDown))
dic(rng.Value) = rng.Value
Next
m = dic.Items ' 字典存入到 m 變數中
For cts = 0 To UBound(dic.Keys)
.AddItem m(cts)
Next
.Value = "" ' m(0) = "A"
End With
End With
End Sub
複製代碼
工作表3 (範例測試):
Private Sub ComboBox1_Change()
Dim sh As Range, c As Variant
Sheets("範例測試").[A3:I65535].Clear
Set sh = Sheets("範例測試").[A3]
' 這個範例會在第一張工作表上的 A1:A500 範圍內尋找值為 2 的所有儲存格,
' 並將這些儲存格的值變更為 5。
With Sheets("資料庫").Range("A2:A" & [A2].End(xlDown).Row)
Set c = .Find(ComboBox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Resize(, 5).Copy sh
sh.Offset(0, 8) = c.Offset(0, 6)
Set sh = sh.Offset(1)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
複製代碼
作者:
准提部林
時間:
2016-7-25 13:54
是想篩選資料吧!論壇有很多例子,找一下應可以,或自行錄製巨集試試,
若想用純公式,參考如下(不用陣列公式.加輔助欄):
[attach]24744[/attach]
輔助公式:
=LOOKUP("z",IF({1,0},"",(MATCH(C$1,INDIRECT("資料庫!A"&A2+2&":A9000"),)+A2)&""))
取資料公式:
=IF($A3="","",INDEX(資料庫!$A:$G,$A3+1,MATCH(B$2,資料庫!$1:$1,)))
以上適用于〔未排序〕的資料∼∼
作者:
v03586
時間:
2016-7-26 13:05
回復
4#
准提部林
感謝大大的提醒....因為有先去Youtube 爬文, 不知道這個專有名詞!! 現在又學了一招了!! 感謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)