2017-04-24 122 views
1

我有一個單元格包含逗號分隔的值列表,我需要能夠將這些值用作驗證列表。有沒有辦法做到這一點? 值的列表可以是0到50個值的任何值。如何使用逗號分隔列表在Excel中創建下拉列表

+1

你需要的內容拆分爲自己的細胞。 Excel的[文本到列](https://support.office.com/zh-cn/article/Split-text-into-different-columns-with-the-Convert-Text-to-Columns-Wizard-30b14928 -5550-41f5-97ca-7a3e9c363ed7)可以做到這一點。 – tigeravatar

+0

http://stackoverflow.com/q/11012619/62576 –

+0

如果列表不是太大,只需在源代碼中使用驗證數據,列表0,2,5,7,50 – yass

回答

0

是可能的用逗號分隔的字符串出一個小區的分割成單元的列沒有VBA:

複製細胞和在ROW1輸入:

=CHOOSE(ROW(), 

然後粘貼,),輸入並複製以適應。

0

這應該工作:

假設你有工作在您的工作表的名稱是「任務」,來源是在單元格A1,你必須在A2添加驗證列表在同一張紙上。

  • 激活VBA
  • 轉到VBA編輯
  • 創建

    Private Sub Workbook_Open() 
    
        AddCSVListValidation "Task", "A1", "A2" 
    
    End Sub 
    
    Sub AddCSVListValidation(sheet, cellSource, cellTarget) 
        txt = ActiveWorkbook.Worksheets(sheet).Range(cellSource).Value 
        ActiveWorkbook.Worksheets(sheet).Range(cellTarget) = "Select your values here" 
        With ActiveWorkbook.Worksheets(sheet).Range(cellTarget).Validation 
         .Delete 
         .Add Type:=xlValidateList, Formula1:="a,b,c" 
         .IgnoreBlank = True 
         .InCellDropdown = True 
         .InputTitle = "" 
         .ErrorTitle = "" 
         .InputMessage = "" 
         .ErrorMessage = "" 
         .ShowInput = True 
         .ShowError = True 
        End With 
    End Sub 
    

結果如下所示工作簿模塊下面的代碼 - 無論何時打開工作簿系統將自動-populated。希望這可以幫助。

您還可以陷阱任務表變化的事件和A1範圍的更新狀態運行的代碼調用

AddCSVListValidation "Task", "A1", "A2" 

更新驗證列表這也可以讓你擴大經營到多源和目標細胞。您需要使用.xlsm擴展名保存該書,並在最新的Excel版本中啓用宏。

enter image description here

相關問題