So erstellen Sie einen vCard-Reader (.vcf-Datei) mit Excel VBA

Jetzt teilen:

Wollten Sie schon immer Kontaktdaten aus VCF-Daten in eine Excel-Tabelle importieren? Folgen Sie diesem Artikel und erstellen Sie Ihren eigenen VCF-Reader, der Daten aus Ihren VCF-Dateien in Excel-Arbeitsblätter importiert

Jetzt kostenlos herunterladen

Wenn Sie die Software so schnell wie möglich nutzen möchten, dann können Sie Folgendes tun:

Laden Sie die Software jetzt herunter

Andernfalls können Sie den folgenden Inhalt lesen, wenn Sie selbst basteln möchten.

Bereiten wir die GUI vor

Bereiten wir die GUI für unsere VCF-Reader-Anwendung vor. Auf Sheet1 müssen wir ein Feld erstellen, das den vollständigen Pfad unserer VCF-Datei enthält. Anstatt die Zellenbreite zu erweitern, führen Sie Zellen zusammen, um dieses Feld zu erstellen. Damit Benutzer die VCF-Datei auswählen können, fügen wir dem Blatt eine Schaltfläche "Durchsuchen" hinzu. Wir benötigen eine zusätzliche Schaltfläche, damit Benutzer die VCF-Daten importieren können. Nennen wir diese Schaltfläche "Importieren".

Das Sheet1 sieht jetzt so ausBereiten Sie die GUI für unsere VCF-Reader-Anwendung vor

Bereiten wir die Datenbank vor

Wir werden Sheet2 als Datenbank verwenden. Sie müssen lediglich die entsprechenden Spaltenüberschriften erstellen. In diesem Beispiel importiere ich Name und Organisation aus VCF. Deshalb habe ich die Spaltenüberschriften "Name" in Spalte A und "Organisation" in Spalte B hinzugefügt.

Sheet2 wird jetzt so aussehenVerwenden von Sheet2 als Datenbank

Machen wir es funktionsfähig

Jetzt haben wir das Front-End für unser Tool entwickelt und unser nächster Schritt besteht darin, es durch Hinzufügen von Skripten funktionsfähig zu machen. Öffnen Sie den VBA-Editor und fügen Sie im Modul 1 das folgende Skript ein.

Gehen Sie nun zurück zu Blatt1 und fügen Sie das Sub "pickvcf" zur Schaltfläche "Durchsuchen" hinzu. Klicken Sie mit der rechten Maustaste auf die Schaltfläche "Importieren" und weisen Sie ihr das Makro "importvcf" zu. Speichern Sie die Datei als makrofähige Datei und das wars. Sie haben jetzt einen VCF-Reader entwickelt.

Lass es uns testen

Klicken Sie auf die Schaltfläche "Durchsuchen", um Ihre VCF-Datei auszuwählen. Sobald Sie im Fenster "Datei durchsuchen" auf "OK" klicken, wird der vollständige Pfad der ausgewählten Datei auf Blatt1 angezeigt. Klicken Sie nun auf die Schaltfläche "Importieren" und Sie sehen sofort Informationen zu Name und Organisation des Kontakts auf Blatt 2.

Wie funktioniert es?

Dieses Skript enthält zwei Subs. Unter "pickvcf" können Benutzer ihre VCF-Datei durchsuchen und auswählen, und unter "importvcf" können Daten aus VCF gelesen und in eine Excel-Datei importiert werden.

Ändern Sie es

Ab sofort importiert das Skript Namens- und Organisationsinformationen aus der VCF-Datei. Sie können das Skript einfach ändern, um andere Informationen wie Adresse, Telefon, Fax und E-Mail zu importieren. Sie können das Skript auch optimieren, um mehrere VCF-Dateien in einem Ordner zu lesen und in einem Stapelprozess zu importieren.

Dieses Skript funktioniert gut, wenn Ihr Excel nicht beschädigt ist. Wenn Sie jedoch eine haben beschädigte Excel-Datei und möchten es reparieren, können Sie Excel-Wiederherstellungstools wie verwenden DataNumen Excel Repair.

Skript

Sub pickvcf()
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = False
        .Title = "Please select the file."
        .Filters.Clear
        .Filters.Add "VCF", "*.vcf"
        If .Show = True Then
            txtFileName = .SelectedItems(1)
            Sheets("Sheet1").Range("F8").Value = txtFileName
        End If
    End With
End Sub

Sub Importvcf()
    Dim fileName As String, textData As String, textRow As String, fileNo As Integer
    fileName = Sheets("Sheet1").Range("F8").Value
    fileNo = FreeFile
    r = 2
    Open fileName For Input As #fileNo
    Do While Not EOF(fileNo)
        Line Input #fileNo, textRow
        If Left(textRow, 3) = "FN:" Then
            Sheets("Sheet2").Range("A" & r).Value = Replace(textRow, "FN:", "")
        End If
        If Left(textRow, 4) = "ORG:" Then
            Sheets("Sheet2").Range("B" & r).Value = Replace(textRow, "ORG:", "")
        End If
    Loop
    Close #fileNo
End Sub

Einführung des Autors:

Nick Vipond ist ein Datenrettungsexperte in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Reparatur doc und Outlook Recovery-Softwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.