Vba 使用列索引进行筛选和复制

Vba 使用列索引进行筛选和复制,vba,excel,Vba,Excel,我试图根据列indexcategoryPoint在Excel工作表中选择一列。然后,我尝试在此列上运行高级筛选器,以选择唯一值并使用以下代码将其复制到新工作表中: Worksheets("Sheet1").Range(Columns(categoryPoint)).AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=Worksheets("Sheet5").Range("C2"), _ Unique:=True 它

我试图根据列indexcategoryPoint在Excel工作表中选择一列。然后,我尝试在此列上运行高级筛选器,以选择唯一值并使用以下代码将其复制到新工作表中:

Worksheets("Sheet1").Range(Columns(categoryPoint)).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Worksheets("Sheet5").Range("C2"), _
    Unique:=True

它表示对象或应用程序定义的错误。

使用以下测试语法:

Dim categoryPoint As Long

categoryPoint = 28

Worksheets("Sheet1").UsedRange.Columns(categoryPoint).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Worksheets("Sheet5").Range("C2"), _
    Unique:=True

什么是categoryPoint,如果它是一个变量,抛出错误时它有什么值?此外,还应完全限定列:WorksheetsSheet1.RangeWorksheetsSheet1.ColumnscategoryPoint.AdvancedFilter如果活动工作表是其他工作表,则变量的值为28。变量值没有问题。尝试完全限定以及相同的错误。categoryPoint是一个整数Dim:提取范围中缺少字段名或字段名无效。只是被困在这个问题上太久了是的我做了!你的代码运行得很好!谢谢现在是将其分配给阵列的时候了!很高兴它起作用了。请将答案标记为其他人的参考