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

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

在“数据validation”列表中,可以有这3种情况。

A)一个公式,它是指同一张纸上的一个范围

在这里输入图像描述

B)使用逗号直接input的列表

在这里输入图像说明

C)一个公式,它是指来自同一个/另一个表的一个命名范围

在这里输入图像描述

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

要访问数据validation单元的列表,您必须使用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 

我已经评论了代码,所以你不应该面临任何问题。 如果你这样做,然后简单地问:)

除非有人有一个更好的主意,我已经select了每个项目到不同的单元格,然后将其复制到一个CSV文件,我可以导入到一个表格。