2017-10-16 51 views
0

我目前使用CSV文件來填充數據。用戶下載該CSV文件,編輯並上傳文件。如果我讓用戶輸入,有很多事情可能會出錯。所以,我想知道是否有方法通過使用CSV或XLS或任何其他格式來填充下拉字段。用戶可以從下拉列表中選擇,而不是輸入。如何在Excel中填充下拉列表

P.S.不知道這是否很重要,但我正在使用NodeJS將數據填充到CSV文件中。

+0

是的。這在excel中被稱爲「數據驗證」。您可以定義哪些單元格受數據有效性的限制,並定義了它的驗證方式。列表會導致允許值的單元格中出現下拉列表。 – JNevill

+0

@JNevill,是的,但我怎樣才能通過代碼填充它們? –

+0

1.通過代碼'Range(「A1」)將想要的值放入驅動驗證的單元格中。Add Type:= xlValidateList,AlertStyle:= xlValidAlertStop,Operator:= _ xlBetween,Formula1:=「a,b ,C,d「'。 2.添加一個ActiveX組合框,如「A​​ctiveSheet.OLEObjects.Add(ClassType:=」Forms.ComboBox.1「,Link:= False,DisplayAsIcon:= False,Left:= 253.5,Top:= 33.75,Width: = 122.25,身高_ := 9)'並填充它。 3.添加一個excel表單組合框,並將其與單元格「ActiveSheet.DropDowns.Add(292.5,108,105.75,62.25)'鏈接。有很多方法可以解決這個問題,這取決於你的需求。 – JNevill

回答

0

說我們先從:

enter image description here

此示例宏:

Sub ImportFiles() 
    Dim j As Long, k As Long 

    Close #1 
    Open "C:\Users\Garys\Desktop\shop.csv" For Input As #1 
    j = 1 
    Do While Not EOF(1) 
      Line Input #1, TextLine 
      ary = Split(TextLine, ",") 
      k = 1 
      For Each a In ary 
       Cells(j, k) = a 
       k = k + 1 
      Next a 
      j = j + 1 
    Loop 
    Close #1 


    With Columns("B:B").Validation 
      .Delete 
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
      xlBetween, Formula1:="yes,no" 
      .IgnoreBlank = True 
      .InCellDropdown = True 
      .InputTitle = "" 
      .ErrorTitle = "" 
      .InputMessage = "" 
      .ErrorMessage = "" 
      .ShowInput = True 
      .ShowError = True 
     End With 
End Sub 

將運行軌跡上列

0

使用的.csv和設置數據驗證您的Excel文件中的隱藏工作表。使用相同的數據填充隱藏的工作表,而不是使用CSV。

在另一張紙上,讓用戶使用下拉菜單輸入將從隱藏紙張中拾取的數據。爲了設置下拉式使用數據驗證(數據選項卡,數據驗證)。選擇列表並選擇爲來源隱藏工作表中的值。爲了方便起見,您可以暫時取消隱藏表格。