Frage : VBA übertreffen oder greifen auf Dateneinsturz zurück

Meine Daten sind entweder in übertreffen oder zurückgreifen vorhanden, also, welches bildet, ist das Problem der Lösung easier.

My ich werden doppelte Firmennamen entfernen, aber nicht alle Aufzeichnungen haben Telefon, Telefax und email.

zum Beispiel.

company Telefontelefax email

abc 123
abc 456
abc [email protected]
abc 123

def 456
def
def
def [email protected]

ghi
ghi 123
ghi


If lösche ich Duplikate, möchte ich nicht Daten lösen, die von einer anderen Aufzeichnung für das gleiche company.

From, was Sie nicht alle Aufzeichnungen sehen können Telefon zu haben #, Telefax u. eMail vorhanden sein konnten, wenn sie sie atall.

After, welches das vba laufen lässt, möchte ich, dass die Daten oben wie this

company Telefon-Telefax email

abc 123 456 [email protected]
abc 123 456 [email protected]
abc 123 456 [email protected]
abc 123 456 [email protected]

def 456 [email protected]
def 456 [email protected]
def 456 [email protected]
def 456 [email protected]

ghi 123
ghi 123
ghi 123


So aussehen, das ich die Duplikate ohne Mühe löschen kann.  

Antwort : VBA übertreffen oder greifen auf Dateneinsturz zurück

das Unterseeboot im angebrachten Arbeitsbuch laufen lassen
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:
Sub runme ()

S als Arbeitsblatt verdunkeln
Einstellen s = Sheet1

irow = 2

Schwache Telefone als Schnur, faxS als Schnur, eMail als Schnur

Tun während LenB (s.Cells (irow, „A“). Wert) > 0

    irow2 = irow
    Telefone = vbNullString
    faxS = vbNullString
    eMail = vbNullString
    
    Tun während LenB (s.Cells (irow, „A“). Wert) > 0
        Wenn LenB (s.Cells (irow, „B“). Wert) > 0 dann
            Telefone = s.Cells (irow, „B“). Wert
        Beenden wenn
        Wenn LenB (s.Cells (irow, „C“). Wert) > 0 dann
            faxS = s.Cells (irow, „C“). Wert
        Beenden wenn
        Wenn LenB (s.Cells (irow, „D“). Wert) > 0 dann
            eMail = s.Cells (irow, „D“). Wert
        Beenden wenn
        irow = irow + 1
    Schleife
    irow = irow2
    Tun während LenB (s.Cells (irow, „A“). Wert) > 0
        s.Cells (irow, „B“). Wert = Telefone
        s.Cells (irow, „C“). Wert = faxS
        s.Cells (irow, „D“). Wert = eMail
        irow = irow + 1
    Schleife
    
    Tun während LenB (Trim$ (s.Cells (irow, „A“). Wert)) = 0 und irow  < s="">
           
 
Beispiel
 
Weitere Lösungen  
 
programming4us programming4us