Board logo

標題: 互動的下拉 [打印本頁]

作者: hong912    時間: 2012-9-17 15:51     標題: 互動的下拉

請教大大們, 一個互動下拉問題,
工作表1是資料庫, a欄位是編號, b欄位是名稱, 而我想在工作表2a欄及b欄各設一下拉,
當我在a欄選擇編號b欄則傳回工作表1b欄名稱資料, 而我在b欄下拉選擇名稱, a欄同樣地把工作表1a欄資料傳回,
我曾用過名稱驗證, 但不成功, 故請教大大們, 先行謝過..
作者: Hsieh    時間: 2012-9-17 16:47

回復 1# hong912
工作表2的A、B欄設置好驗證
工作表2模組
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim k%, d As Object, Rng As Range, A As Range
  3. If Target.Column > 2 Or Target.Count > 1 Or Target(1) = "" Then Exit Sub
  4. Application.EnableEvents = False
  5. Set d = CreateObject("Scripting.Dictionary")
  6. On Error Resume Next
  7. Set Rng = Evaluate(Target.Validation.Formula1)
  8. If Err.Number <> 0 Then GoTo 10
  9. k = IIf(Target.Column = 2, -1, 1)
  10. For Each A In Rng
  11. d(A.Value) = A.Offset(, k).Value
  12. Next
  13. Target.Offset(, k) = d(Target.Value)
  14. 10
  15. Application.EnableEvents = True
  16. End Sub
複製代碼

作者: hong912    時間: 2012-9-17 21:17

回復 2# Hsieh

Hsieh版大, 謝謝回應, 已試用正是這種效果,  但運行較慢, 如當選擇了資料後, 另一欄位傳回的速度要等, 來個比如, 當選擇資料後, 開始心數1234至20左右, 另一欄位資料才傳回值, 是否有方法令速度變快..
其實版大的回應, 小弟已很衷心感謝, 祝願大大快樂, 謝謝!!
作者: Hsieh    時間: 2012-9-17 21:28

回復 3# hong912
你的驗證清單數量很大嗎?
或是有其他公式很多造成重算時間過長呢?
上傳你的檔案看看
作者: hong912    時間: 2012-9-17 22:15

回復 4# Hsieh
Hsieh版大, 好,  剛整理過資料夾, 的確是檔案過大,  現過問題己解決, 謝謝Hsieh版大再度回應, 祝願快樂, 謝謝!!
作者: maiko    時間: 2012-9-19 08:20

好,剛剛需要這個東西,正好可以解決我的需要。
作者: tommy.lin    時間: 2012-9-19 10:45

滿棒的做法說




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