dynamsiches RemoveDuplicates in VBA
13.07.2016 11:15:49
Claus
mit dem MacroRecorder habe ich mir folgende RemoveDuplicates-Zeile ermittelt:
ActiveSheet.Range("$A$1:$BW$5282").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, _
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 _
, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, _
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75), Header:=xlYes~f~
Mein Problem ist folgendes: Ich Weiss, dass ich in absehbarer Zeit die Anzahl der Spalten im Array mehrmals verändern werden muss. Also will ich den Befehl dynamisch machen.
Folgendes habe ich ausprobiert:
1. Gemäss der Excel-Hilfe ist "Columns" optional und es warden alle Spalten angenommen, wenn der Parameter nicht angegeben wird
=> Bei mir funktioniert das nicht => Es sind immer noch Duplikate vorhanden.
2. Wenn ich den Array definiere über eine Variable, die ich aus einem String bilde
"1,2,3,4,5,6,...." => val("1,2,3,4,5,6,..") => 1) funktioniert das zwar ohne Fehlermeldung, aber die Dupliakte warden nicht entsorgt.
3. ActiveSheet.Range("$A$1:$BW$5282").RemoveDuplicates beseitigt die Duplikate auch nicht...
Meines Erachtens nach sollte es nicht am ausgewählten Range liegen, den ich dynamisch über folgende Sequenz bilde:
~f~
Cells(1, 1).Select
ActiveCell.SpecialCells(xlCellTypeLastCell).Select
ActiveSheet.Range(Cells(1, 1), Cells(ActiveCell.Row, ActiveCell.Column)).RemoveDuplicates
Also, wie kann ich das dynamisch machen, und vor allem effektiv. Ich will ungern jedesmal das Makro anpassen müssen...
Danke schon vorab für Eure Hilfe.
Gruss
Claus