首页 文章

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

提问于
浏览
2

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

2 回答

  • 3

    在“数据验证”列表中,您可以拥有这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
    

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

  • 0

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

相关问题