Frage : XLS vba Frage 2003 - doppelte Reihen löschen

Hallo - 2003 innen übertreffen, das ich versuche, ein Unterseeboot zu gründen, das das Löschen der doppelten Reihen vollendet.

I fand einen Beispielvba Index, der mich begonnen erhielt - es ist für das Löschen der doppelten Reihen übertrifft innen aber nicht völlig vollendet, was ich zu do.

In sein wünsche seine anwesende Form (mit etwas Änderungen von mir), das ich sie meistens habe, zu arbeiten, aber muss diese Einzelteile adressieren nützlich:

1. Ich möchte in der Lage sein, einen instr Test durchzuführen, um die Spalte zu kennzeichnen, die ich für die doppelte Überprüfung benutzen möchte - im Augenblick getan sie mit mir die Strecke einstellend, um „A1“ wie gezeigt zu sagen unten, damit Spalte A benutzt -- aber die Spalte kann unterscheiden - es ist am besten, wenn ich einen Schnurtest auf row1 (das durchführen kann die Überschrift nennt in ihm hat und sagen „*SKU*“ (Wildcards) in A1 sucht: AA1 - die Zelle finden, die und Gebrauch, dass die Zelle, um die Spalte einzustellen… z.B.B1 sein konnte, etc. - aber ich bin nicht sicher, wie man den Code schreibt, um that.

2. zu vollenden. Wenn es gibt, was scheinen, unbelegte Reihen zu sein, aber sie sind nicht wirklich… z.B. sagen, dass Reihe 1-10 sichtbare Daten hat, aber jemand etwas in Reihen 11 schrieb, 12, dann gelöscht ihm, der Code rudert 11 und 12 aufhebt, wie, die Verarbeitung benötigend - so möglicherweise dort ist ein len Test, der auf dem concantonation von durchgeführt, sagen die ersten 3 Spalten jeder Reihe (z.B. (a1+b2+c1) >0) len, zum zu sehen wenn die Reihe verarbeiten muss? die Ausgabe ist ich benötigt einen genauen Zählimpuls auf, wievielen Duplikaten, weil neuere Prozesse auf diesem beruhen, um festzustellen, welcher Weg, zum (z.B., wenn die gefundenen Duplikate >100 dies, tun andernfalls diesem) von

3. zu nehmen. Ich möchte in der Lage sein zu sehen, dass die Resultate/Detail, was - ich, die Indexeinstellung haben, zum # von Reihen zu zeigen, die es löschte - sehen Unterseite „result_sheet gelöscht. Strecke („number_rows_deleted“). Value = CStr (N)“ - aber möchte das Detail - der Reihe selbst - wie der Reihe nach die Reihen notieren… sehen „dupkillerresult“ Vorsprung in der xls Akte - Reihen 11/12 zeigen - wenn sie die Reihenzahl, den Vorsprungnamen, dann das Reihendetail schreiben könnte….

PS - ich bin fein mit der Tatsache, dass, wenn ein Duplikat gefunden, die erste Instanz/die Reihe preserved.

thanks im Voraus für jede mögliche Hilfe ist!
shows Vorsprungeinstellungsbeispieldaten usa_data Vorsprung - vba ist- dort im too
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:
6:
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:
Public VorDeleteDuplicateRows_usa () 'Ctrl-u
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'DeleteDuplicateRows
'Dieses löscht die doppelten Aufzeichnungen, basiert auf der aktiven Spalte. Das heißt,
'wenn der gleiche Wert mehrmals in der aktiven Spalte gefunden, alle als
'das erste (niedrigste Reihenzahl) gelöscht.
'
', das Makro laufen zu lassen, die gesamte Spalte vorwählen, die Sie auf scannen möchten
'Duplikate und gelaufen diesem Verfahren.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Schwaches R als lang
Schwaches N als lang
Schwaches V als Variante
Schwaches Rng als Strecke
Schwaches xlSheet_dupkillerresult als Excel.Worksheet
Schwaches my_active_source als Excel.Worksheet

My_active_source = Arbeitsblätter („usa_data“) einstellen
    my_active_source. Aktivieren
    my_active_source. Strecke („A1“). Auserwählt
My_active_source einstellen = nichts

Auf Störung Goto- EndMacro
Application.ScreenUpdating = falsch
Application.Calculation = xlCalculationManual


Rng = Application.Intersect (ActiveSheet.UsedRange, _ einstellen
                    ActiveSheet.Columns (ActiveCell.Column))

Application.StatusBar = „, Reihe verarbeitend: “ U. Format (Rng.Row, „#, ##0“)

N = 0
Für R = Rng.Rows.Count zu 2 Schritt -1
Wenn r-Umb. 500 = 0 dann
    Application.StatusBar = „, Reihe verarbeitend: “ U. Format (R, „#, ##0“)
Beenden wenn

V = Rng.Cells (R, 1).Value
Wenn V = dann vbNullString
    Wenn Application.WorksheetFunction.CountIf (Rng.Columns (1), vbNullString), > 1 dann
        Rng.Rows (R).EntireRow.Delete
        N = N + 1
    Beenden wenn
Sonst
    Wenn Application.WorksheetFunction.CountIf (Rng.Columns (1), V) > 1 dann
        Rng.Rows (R).EntireRow.Delete
        N = N + 1
    Beenden wenn
Beenden wenn
Folgendes R

EndMacro:

Application.StatusBar = falsch
Application.ScreenUpdating = ausrichten en
Application.Calculation = xlCalculationAutomatic
xlSheet_dupkillerresult = Arbeitsblätter („dupkillerresult“) einstellen
xlSheet_dupkillerresult.Activate
xlSheet_dupkillerresult.Range („usa_count“). Wert = CStr (N)
xlSheet_dupkillerresult einstellen = nichts
'MsgBox „doppelte Reihen löschten: “ U. CStr (N)

Enden-Unterseeboot

Antwort : XLS vba Frage 2003 - doppelte Reihen löschen

Weitere Lösungen  
 
programming4us programming4us