VBA:使用变量传递列数组时,删除重复项失败 [英] VBA: Remove duplicates fails when columns array is passed using a variable
本文介绍了VBA:使用变量传递列数组时,删除重复项失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用变量传递RemoveDuplicates
的Columns参数时,它将失败并引发错误.将列直接作为Array(1,2)
When the Columns parameter of the RemoveDuplicates
is passed using a variable it fails and throws error. Same code works when the columns are passed directly as Array(1,2)
错误5:无效的过程调用或参数
Error 5: Invalid procedure call or argument
Sub test()
Dim arrCols
arrCols = Array(1, 2)
'/This here works
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes
'/ Same code fails when the columns array is passed via variable
'/ Error 5: Invalid procedure call or argument
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=arrCols, Header _
:=xlYes
End Sub
推荐答案
将()
放在数组周围:
Sub test()
Dim arrCols As Variant
arrCols = Array(1, 2)
'/This here works
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes
'/ Same code fails when the columns array is passed via variable
'/ Error 5: Invalid procedure call or argument
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=(arrCols), Header _
:=xlYes
End Sub
这与vba期望看到的内容有关.
It has to do with what vba is expecting to see.
这篇关于VBA:使用变量传递列数组时,删除重复项失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文