列表框的VBA .Sort功能

时间:2016-11-10 15:27:05

标签: vba excel-vba listbox activex excel

我之前在其他列表框中使用了这个完全相同的VBA代码,非常成功地添加了非重复项。不幸的是,这次它给了我一个错误“应用程序定义或对象定义的错误”。非常感谢对此的任何见解,我不确定为什么它没有将项目添加到列表中。这也是一个ActiveX列表框,它正在工作表而不是用户表单中添加。我之前完成了相同的完全相同的代码没有问题,但这一次出现错误: rngData.Sort

Private Sub lstCountry_Click()
Dim wsData As Worksheet
Dim strID As String
Dim rngData As Range
Dim rngCell As Range
Dim shtPivot
Set shtPivot = ThisWorkbook.Worksheets("Pivot")
Set wsData = ThisWorkbook.Worksheets("Raw Data")
Set rngData = wsData.Range("a2").CurrentRegion


lstCountry.Clear
strID = "Select Country"
rngData.Sort key1:=strID, Header:=xlYes


For Each rngCell In rngData.Columns(1).Cells
    If rngCell.Value <> strID Then
        lstCountry.AddItem rngCell.Value
        strID = rngCell.Value
    End If
Next rngCell

附件是我正在尝试排序的表的屏幕截图 enter image description here

2 个答案:

答案 0 :(得分:0)

以下是如何使用sort选项的一个很好的示例: https://msdn.microsoft.com/en-us/library/office/ff840646.aspx

在你的情况下,很可能你没有&#34;选择国家&#34;写在你的范围的顶部。你的最高范围是第2行。你能给出截图吗?

答案 1 :(得分:0)

我只是想通了。我重新复制了表格,我将信息从另一张表中拉出来,我的代码也运行了。这很奇怪,它不会在另一个工作表上的同一个表上工作。我没有得到它,但我会选择新复制的表格。我很感激帮助。: - )