在下拉列表中顯示所有3列的組合的唯一方法是連接第4列中的數據,例如使用下面的公式單元格D4
=A4&" "&B4&" "&C4
...那麼你能說出的範圍D4:D100。您可能希望隱藏此列出於表達原因
實際上,您可能會希望避免命名整個範圍,因爲底部單元格可能爲空白/滾動比嚴格必要的尷尬。我會推薦dynamic ranges
下一個擴展練習可能是開發你的公式,以允許例如缺少中間名,例如
=A4&" "&IF(B4<>"",B4&" ","")&C4
上面假定您可以手動對數據進行排序。如果數據未被手動分類,則需要使用VBA例如確保列D完成並且每次用戶離開Sheet(「Emp」)時創建命名範圍。可以嵌入在下面的代碼的Emp片...
Private Sub Worksheet_Deactivate
For n = 4 to 100
If Cells(n, 1) <> "" Then
Cells(n, 4) = Cells(n, 1) & " " & Cells(n, 2) & " " & Cells(n, 3)
End If
Next n
Range(Cells(4,4),Cells(100,4)).Sort Key1:=Cells(4,4), Order1:=xlAscending, Header:=xlNo
LastRow = 4
Do Until Cells(LastRow + 1, 4) = ""
LastRow = LastRow + 1
Loop
ActiveWorkbook.Names.Add Name:="Employee", RefersTo:=Range(Cells(4,4),Cells(LastRow,4))
End Sub
表達用於分揀/添加可通過記錄宏和消除代碼作爲本expert Excel support video中找到的區域名稱。您的數據驗證將引用「員工」,即第四列中創建的範圍名稱
上面提出了許多假設,例如所有員工在第一列中都有數據,並且您需要添加邏輯測試,如果你不總是有所有三列的數據
這也可能是,當用戶點擊您的窗體的單元格C6時,您可能更喜歡創建員工範圍,因爲這可能會更健壯。我在使用Worksheet_Deactivate時的假設是'Employee'可能在電子表格中的其他地方使用
爲什麼不能訪問?而通過驗證你的意思是你想要你的表單在C6(單元格?用戶表單?)移動數據並將其恰當地放入列表中?對它進行排序? – Brad
它必須在Excel中。在Excel中,您可以使用數據驗證創建一個列表。它在想要列表的單元格中放入向下的箭頭。它是有限制的,所以範圍只能是一列。組合框和/或活動X組合框不在我希望列表出現的單元格中。你可以附上例子嗎?新的論壇。 –
您可以使用代碼編輯您的問題。只要確保你使用了代碼標籤'{}'或'''。如果你使用表單控件而不是activeX控件,你可以很好地控制組合框的填充方式。因爲它是在一個工作表中,而不是一個用戶,因爲它具有95%的常規組合框功能。雖然他們不是真正駐留在單元格內,但可以強制解決問題並將其鎖定在單元格上。 – Brad