在Excel中编辑或导出下拉列表

时间:2013-05-07 19:23:50

标签: excel drop-down-menu export

处理包含两个下拉列表的现有电子表格。是否可以从这些下拉列表中导出或编辑数据?

2 个答案:

答案 0 :(得分:4)

在数据验证列表中,您可以拥有这3种方案。

A)一个公式,它引用同一张表中的范围

enter image description here

B)使用逗号直接输入的列表

enter image description here

C)一个公式,它引用来自相同/另一张表的命名范围

enter image description here

现在我们需要迎合所有三种情况,以防我们想要检索该列表。

要访问数据验证单元列表,您必须使用Rng.Validation.Formula1

请参阅此代码。

Sub Sample()
    Dim ws As Worksheet
    Dim dvRng As Range, rng As Range
    Dim strList As String
    Dim MyAr() As String

    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set dvRng = ws.Range("A1") ' Case A
    'Set dvRng = ws.Range("C1") ' Case B
    'Set dvRng = ws.Range("E1") ' Case C

    '~~> Get the formula in the data validation
    strList = dvRng.Validation.Formula1

    '~~> Check if it has an = sign for Case A and Case C
    If InStr(1, strList, "=") Then
        strList = Replace(strList, "=", "")
        Set rng = Range(strList)
        rng.Copy Sheet2.Range("A1")
    Else
    '~~> Case B
        If InStr(1, strList, ",") Then
            MyAr = Split(strList, ",")
            Sheet2.Range("A1:A" & UBound(MyAr) + 1).Resize.Value = Application.Transpose(MyAr)
        Else
            Sheet2.Range("A1").Value = strList
        End If
    End If
End Sub

我已对代码进行了评论,因此您不应该遇到任何问题。如果你这样做,那么只需要问:)

答案 1 :(得分:0)

除非有人有更好的想法,否则我已将每个项目选择到另一个单元格中,然后将其复制到csv文件中,我可以将其导入到表格中。