假設我有一個包含形狀(方形,圓形,三角形)和顏色(紅色,藍色,綠色)的目錄。每種產品都有獨特的代碼(SR =紅色方塊,TB =藍色三角形等)。 在列A中,用戶可以分別輸入目錄號,在列B和C中分別輸入形狀和顏色。僅當一個單元格爲空時創建下拉列表
我想要的是,如果用戶鍵入目錄號,然後自動填寫B和C(我知道該怎麼做),或者,如果用戶沒有輸入貓。號碼,然後B和C有下拉菜單供他選擇。
我一直在試圖創建一個函數來做到這一點,但我一直未能成功。
這是我一直在做:
Function DropDown(Clave As String)
If Len(Clave) =0 Then
With ActiveCell.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Shapes"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
'Code that finds the shape depending on Clave input
End If
End Function
到目前爲止,我已經成功地創建一個功能,如果用戶輸入貓。數字,那麼下拉菜單中只有一個元素具有正確的選項,但下拉菜單中的單元格是空的,直到用戶選擇菜單,這完全違背了目的。如果下拉菜單可以自動選擇唯一的選擇,或者作爲缺陷,則可以解決這個問題。
EDIT
上面的代碼能夠產生一個下拉如果輸入是空的,則問題是,一個彈出窗口立刻顯示數據不一致(至極是顯而易見的,因爲它顯示功能=DropDown(A1)
)。另一個問題是,如果用戶選擇其中一個選項,該功能將從單元中被擦除,並且功能會丟失。
我一直在想這個問題的解決方案,仍然無濟於事。一個想法是運行一個宏來檢查文檔中的所有下拉列表,如果列表中只有一個選項,宏將自動選擇它。事情是我想在飛行這樣做,這意味着如果用戶輸入貓。沒有。下拉選項被選中,但是如果他刪除它,則下拉列表變爲空白。
EDIT 2
我一直在想,我可以使用事件轉換器,其依賴於貓。號細胞,解決問題。例如,假設A1是Cat。沒有細胞。如果爲空,則在B1和C1中,宏代碼將檢測空單元格,並分別爲形狀和顏色創建下拉菜單。當用戶在單元格中鍵入內容時,事件轉換器會檢測到它,並且宏將填充代碼信息,因爲它檢測到A1不再爲空。
你們認爲什麼?我真的可以在這裏使用一些輸入。
形狀命名範圍是指什麼? – vasek1
'形狀= {「Square」; 「三角形」; 「Circle」}' – Pragabhava
是的,你對Edit 2所做的是我可能會做的 – vasek1