Der Prozess der Umwandlung von MS Excel-Log© ZU ADIF ist relativ einfach und kann mit ein wenig Programmierung werden VBA. Durch diese Link kann auf die Spezifikationen der ADIF beziehen 1.0 die wird von den meisten log verwendet, Wichtig ist, dass Sie dieses Dokument lesen.

Um eine Konvertierung auf dieses Tutorial zu starten basiert, indem eine Datei in MS Excel zu starten©. In der ersten Wäsche Schreiben Sie die Namen der Felder finden Sie importieren möchten (Bitte überprüfen Sie die ADIF 1.0 der Name der Felder). Auch in der ersten Zeile, Typ “ADIF RAW” na letzte Zelle, Dies ist, wo der Text in ADIF geschrieben werden.

Das Arbeitsblatt wird wie folgt aussehen (aber immer noch keine Daten auf der Linie 2). Obwohl die ADIF-Format ist nicht festgelegt, eine minimale Anzahl von Feldern, mindestens Ihre QSO anmelden müssen, haben Werte to Call, QSO_Date, Time_On, Band und Mode.

Dann wählen Sie das gesamte Arbeitsblatt und formatieren Sie die Zellen als Text.

Speichern Sie die Datei xls2adi.xls (Arbeitsblatt in MS Excel©)

Lassen Sie uns nun schreiben und geben Sie den Code in VBA. Gehen Sie zu Extras / Makro, und klicken Sie Visual Basic-Editor (Alt F11).

Im VBA-Editor doppelklicken Sie auf "ThisWorkbook’ das ist in der 'Project – VBAProject ". Hier finden Sie die wichtigsten Codeblock, der ausgeführt wird, wenn Sie diese Datei öffnen wieder bekommen.

Der Block von Code, der folgt definiert einige Variablen und ruft die Funktion fCampoAdifValido (Linie 05) das wird prüfen, ob der Feldname, der in der ersten Zeile wird, entspricht der Spezifikation der ADIF. Wenn alle Feldnamen korrekt sind Funktionsaufrufe des Verfahrens pEscreveAdif (Linie 09) wird das Protokoll in ADIF schreiben, Wenn ein Feld hat einen ungültigen Namen der Funktion erscheint eine Fehlermeldung (Linie 07) und endet.

Copy / Paste oder geben Sie den folgenden Code:

 

Private Sub Workbook_Open()
  As Boolean Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Wenn bNomeDoCampoValido = False Then
       ("Gefunden ungültigen Feldnamen" & vbCrLf & "Entfernen Sie die Spalten in rot gefüllt!")
    Sonst
      

In den VBA-Editor, klicken Sie auf Einfügen / Modul. In diesem Modul werden die restlichen Code, der vom Haupt-Block aufgerufen wird.

Die Konstanten conLinhaInicial (Linie 02 den nächsten Block) und conColunaInicial (Linie 03 den nächsten Block) definieren die Linie 2 (Kalkulationstabelle) haben die erste Registrierung und dass die Spalte A (Kalkulationstabelle) das erste Feld.

Die Funktionen fQualEAUltimaLinha (Linie 08 den nächsten Block) und fQualEAUltimaColuna (Linie 17 den nächsten Block) bestimmt die letzte Zeile und Spalte Daten. Dies erfordert eine leere Zelle bedeutet das Ende der Log-Einträge.

Die Funktion fCampoAdifValido (Linie 05 do letzten bloco) testet die Gültigkeit der Feldnamen. Dem Zyklus 'Select Case sNomeDoCampo’ (Linie 31 den nächsten Block) Weitere Felder können entsprechend der Spezifikation des ADIF hinzugefügt werden.

Das Verfahren pEscreveAdif (Linie 09 do letzten bloco) wird der Text in der Spalte, ADIF hat schreiben “ADIF RAW” die erste Zeile. Dieses Verfahren ist aus dem Bereich Ifen QSO_DATE genommen, die beiden Punkte des Feldes und fügte eine TIME_ON M am Ende des Feldes BAND. Um dies zu mehr Makro kann strengere Bedingungen für die Überprüfung von Daten in diesem Verfahren verhängt werden.

Copy / Paste oder geben Sie den folgenden Code in das Modul:

 

Option Explicit
 2
Public Const conColunaInicial As String = "A"
As Integer Öffentliche iUltimaLinha
(iPrimeiraLinha As Integer) As Integer
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    Schleife
   - 1
End Function

(Der String sPrimeiraColuna) Der String
  (sPrimeiraColuna)
    Do While Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Schleife
  (iValRecebido - 1)
End Function

(Der String sPrimeiraColuna, sUltimaColuna As String) Der Boolean
  (sPrimeiraColuna) Um Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Select Case sNomeDoCampo
         "Band": fCampoAdifValido = True
         "rufen": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "Modus": fCampoAdifValido = True
         "qso_date": fCampoAdifValido = True
         "rst_rcvd": fCampoAdifValido = True
         "rst_sent": fCampoAdifValido = True
         "srx": fCampoAdifValido = True
         "stx": fCampoAdifValido = True
         "time_on": fCampoAdifValido = True
         "raw ADIF"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  As Integer Dim iLinhaCorrente
   ""
    Für iColunaCorrente = Asc(conColunaInicial) Um Asc(sUltimaColuna) - 1
      Wenn LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "Band" Dann
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Sonst
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Dann
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Sonst
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Dann
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Sonst
            (iLinhaCorrente, Chr(iColunaCorrente))
          End If
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Nur(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Nächste

 

Klicken Sie auf Datei / Speichern xls2adi.xls und schließen Sie den VBA-Editor.

Nun kopieren Sie die Daten in Ihrem MS Excel-Dateien© wer will, um die entsprechenden Spalten umwandeln, schwere quit am Ende und MS Excel©.

Möglicherweise müssen Sie die Einstellungen für MS Excel sugurança ändern© zum Ausführen von Makros, wenn nötig, Extras / Makro und klicken Sie auf Sicherheit gehen, wählen Sie eine niedrigere Ebene. Dies war für MS Excel geschrieben© em MS Windows XP© (sowohl in der portugiesischen Version). Mit diesem Code ist noutra vai língua, z. B. in englischer Sprache, Ersetzen Sie den Begriff "Sheet1’ por 'Sheet1’

Wenn Sie einen Doppelklick auf die Datei xls2adi.xls, Code, den Sie gerade eingegeben wird ausgeführt und die Spalte “ADIF RAW” ist unser Log in ADIF-Format.

Jetzt bis zum Ende, wählen Sie die Spalte Inhalt “ADIF RAW” und kopieren (Strg C), Start-oder Notepad (Notizblock) und cole (Strg V). Speichern Sie die Datei mit der zusätzlichen Erweiterung.

Dieses Codebeispiel ist kostenlos zu benutzen, Sie können frei nutzen. Es ist ein sehr einfaches Beispiel, was ist nur möglich, mit Hilfe von VBA werden (Visual Basic for Applications). Ergänzen diesen Code Validierungen mit genaueren, vor allem in den Feldern 'qso_date’ e 'TIME_ON', wo die Formate müssen mit der Spezifikation ADIF. Wenn Sie einen Fehler oder Fragen haben, Zögern Sie nicht, Kommentar. Ich hoffe, der Artikel wird nützlich sein,.