Excel 2013 VBA Range.RemoveDuplicates问题指定数组

马克·史密斯

我正在扫描的工作表中的重复项具有不同的列数

我试图通过使用像这样的字符串来指定Range.RemoveDuplicates的列数组

假设此工作表中有5列

Dim Rng As Range
Dim i As Integer
Dim lColumn As Integer
Dim strColumnArray As String

    With ActiveSheet

        lColumn = Cells(1, Columns.Count).End(xlToLeft).Column

        strColumnArray = "1"
        For i = 2 To lColumn

            strColumnArray = strColumnArray & ", " & i

        Next i

    'String ends up as "1, 2, 3, 4, 5"

        Set Rng = Range(Cells(1, 1), Cells(1, lColumn).End(xlDown))
        Rng.RemoveDuplicates Columns:=Array(strColumnArray), Header:=xlNo

    End With

并且我收到运行时错误13 Type Mismatch”错误

因此,我阅读了帖子,并看到有人通过将其指定为这样的数组来在哪里做的:

Dim Rng As Range
Dim i As Integer
Dim lColumn As Integer
Dim strColumnArray() As String

    With ActiveSheet

        lColumn = Cells(1, Columns.Count).End(xlToLeft).Column

        ReDim strColumnArray(lColumn) As String

        For i = 1 To lColumn + 1    'The array needs to start with 1

            strColumnArray(i) = i

        Next i

        Set Rng = Range(Cells(1, 1), Cells(1, lColumn).End(xlDown))
        Rng.RemoveDuplicates Columns:=strColumnArray, Header:=xlNo

    End With

我已经尝试过这种方式:

Rng.RemoveDuplicates(strColumnArray, Header:=xlNo)

这种方式:

Rng.RemoveDuplicates(Columns:=Array(strColumnArray), Header:=xlNo)

以及Variant,String,Integer等的无穷组合。

我必须在这一点上想念它

任何帮助,将不胜感激

道格·格兰西(Doug Glancy)

我不得不回去重新阅读我的文章我认为数组必须是一个Variant无论如何,这似乎可行:

Sub RemoveDupes()
Dim Rng As Range
Dim i As Integer
Dim lColumn As Integer
Dim ColumnArray As Variant

    With ActiveSheet
        lColumn = Cells(1, Columns.Count).End(xlToLeft).Column
        ReDim ColumnArray(lColumn - 1)
        For i = 0 To lColumn - 1  'The array needs to start with 1
            ColumnArray(i) = i + 1
        Next i
        Set Rng = Range(Cells(1, 1), Cells(1, lColumn).End(xlDown))
        Rng.RemoveDuplicates Columns:=(ColumnArray), Header:=xlYes
    End With
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有Cell参数的VBA Excel Range()

来自分类Dev

Excel 2013 VBA清除所有筛选器宏

来自分类Dev

VBA循环中动态数据范围的Excel 2013适当语法

来自分类Dev

Excel VBA使用.Cells定义.Range

来自分类Dev

Excel 2013 VBA调整大小无法正常工作

来自分类Dev

Excel 2013 VBA代码中的特殊字符(字母čćžšđ)

来自分类Dev

Excel 2013 VBA清除活动过滤器

来自分类Dev

Excel 2013 VBA为新工作簿创建按钮

来自分类Dev

Access 2013 VBA自动使Excel丢失窗口

来自分类Dev

VBA-自动化错误-Excel 2013

来自分类Dev

Excel 2013 VBA为单个工作簿打开多个窗口

来自分类Dev

发送密钥以解锁VBA Project Excel 2013

来自分类Dev

在VBa Excel 2013中调整注释框图片大小

来自分类Dev

Excel 2013 VBA:将数组写入工作表“应用程序定义的错误或对象定义的错误”

来自分类Dev

Excel 2013 VBA:下标超出范围(错误9)

来自分类Dev

VBA在Excel 2013中自动隐藏功能区

来自分类Dev

Excel 2010和2013(OLEObject)之间的VBA命令不兼容?

来自分类Dev

Excel VBA Range RandBetween函数返回错误

来自分类Dev

在Excel 2013中使用VBA读取隐藏列的问题

来自分类Dev

在Excel 2013上使用VBA填充组合框(窗体控件)

来自分类Dev

ActiveWorkbook Path VBA宏Excel 2013出错?

来自分类Dev

Excel 2013 VBA SelectionChange事件

来自分类Dev

需要使用Excel 2013 VBA脚本

来自分类Dev

使用Excel 2013的PowerPoint 2013中的VBA Pulse动画

来自分类Dev

VBA Excel 2013标题/脚注操作

来自分类Dev

Excel 2016 VBA-从Excel 2013升级时出现问题

来自分类Dev

在Excel 2013中将Range()与数组公式一起使用

来自分类Dev

我的 VBA Excel 2013 代码未编译

来自分类Dev

对象'_Worksheet'的方法'Range'失败|Excel|VBA|

Related 相关文章

热门标签

归档