从单元格的下拉列表中选择命名范围

时间:2015-03-26 17:40:55

标签: excel vba sorting

我有几个可能需要排序的范围。我想使用从下拉列表中选择的范围名称来选择和排序该范围:

Sub Sorts()
    Dim Wb As Workbook
    Dim Ws1 As Worksheet
    Dim rng As String

    Set Wb = ThisWorkbook
    Set Ws1 = ThisWorkbook.Sheets("Products")
    Set rng = Ws1.Range("G76").Value


    Ws1.Range("rng").Sort Range("rng").Cells(1, 1)

End Sub

宏停在St rng .......需要对象

1 个答案:

答案 0 :(得分:1)

除了细节之外,您的代码还可以。 正确的代码应该是这一行:

Ws1.Range(rng).Sort Range(rng).Cells(1, 1)

这是由于变量字符串之间的差异。您的rng是字符串类型的变量;这意味着它是一个字符串,但它包含一个特定的value,你在这里“几乎”正确引用了这个字符串:

你不需要Set关键字:

rng = Ws1.Range("G76").Value

但是,如果您使用引号rng传递变量"",VBA将会理解必须查找名为rng的范围;显然,它不存在,所以你得到一个对象未​​设置错误。