RemoveDuplicatesを使用していて、列設定をハードコードする以外の方法はありません。VBA RemoveDuplicates:変数で列を設定できません
Worksheets("SheetName").Activate
ActiveSheet.Range("A:Z").RemoveDuplicates _
Columns:=VBA.Array(1, 2, 3), _
Header:=xlYes
しかし、このコードは、「ランタイムエラー5」をスローしていました:これは、コードが動作します私は実際にも、時間の経過とともに変更される可能性があります100個の+エントリを持つ配列を使用したいと
Dim ArrayColumns() As Variant
ArrayColumns = VBA.Array(1, 2, 3)
Worksheets("SheetName").Activate
ActiveSheet.Range("A:Z").RemoveDuplicates _
Columns:=ArrayColumns, _
Header:=xlYes
、私は最初の解決策にとても満足していません。
私を助けることができますか?
乾杯、 ピーター
ありがとうございます。私はこのソリューションを試したと思っていましたが、それはロングアレイやその他の問題だったはずです。 PS:Sht .Range ....終了私のSht.Rangeよりも速く...?それとも、なぜこれを使ったのですか? –
@PeterFrey多分それは私のスタイルのコーディングですが、私は 'With'ステートメントを使うことを好みます。将来的にこのワークシートでより多くのコーディングを実行したい場合は、参照を設定する方が簡単です。 –
@ Shai Radoはなぜこれが正確に機能しますか?括弧は評価などを強制していますか? – Jbjstam