返回列表 上一主題 發帖

互動的下拉

互動的下拉

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

回復 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
複製代碼
學海無涯_不恥下問

TOP

回復 2# Hsieh

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

TOP

回復 3# hong912
你的驗證清單數量很大嗎?
或是有其他公式很多造成重算時間過長呢?
上傳你的檔案看看
學海無涯_不恥下問

TOP

回復 4# Hsieh
Hsieh版大, 好,  剛整理過資料夾, 的確是檔案過大,  現過問題己解決, 謝謝Hsieh版大再度回應, 祝願快樂, 謝謝!!
hong912

TOP

好,剛剛需要這個東西,正好可以解決我的需要。

TOP

滿棒的做法說

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題