【发布时间】:2016-08-17 07:46:09
【问题描述】:
我正在扫描的重复工作表具有不同的列数
我正在尝试使用这样的字符串为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)
amd 这样:
Rng.RemoveDuplicates(Columns:=Array(strColumnArray), Header:=xlNo)
还有 Variant、String、Integer 等无穷无尽的组合。
我一定只是想念它在这一点上
任何帮助将不胜感激
【问题讨论】:
标签: arrays excel vba duplicates range