A folyamat az átalakítás az MS Excel napló© a ADIF viszonylag egyszerű, és lehet tenni egy kis programozás VBA. Ezzel link utalhat az előírásoknak ADIF 1.0 mellyel a legtöbb napló, Fontos, hogy elolvassa ezt a dokumentumot.

Indításához átalakítási folyamat alapján a bemutató kezdete létrehoz egy fájlt az MS Excel©. Az első fehérnemű Írja a nevét, a mezők lesz akar importálni (Kérjük, ellenőrizze a ADIF 1.0 A neve mezők). Még az első sorban, típusú “ADIF RAW” na utolsó cella, Ez az, ahol a szöveget írt ADIF.

A munkalap hogy néz ki (de nincs adat a sorban 2). Bár a ADIF formátum nem adja meg a minimális számú területen, legalább a QSO be kell értékek Call, QSO_Date, Time_On, Zenekar e mód.

Ezután válasszuk ki a teljes munkalap és formázza a cellákat szövegként.

Mentse a fájlt xls2adi.xls (munkalap MS Excel©)

Térjünk most írni, és helyezze be a kódot VBA. Kattintson az Eszközök / Makró, majd kattintson a Visual Basic Editor (Alt F11).

A VBA szerkesztőben kattintson duplán a "ThisWorkbook’ , ami a "Projekt – VBAProject ". Itt kap a fő blokk kód fog futni, ha megnyitjuk ezt a fájlt újra.

A blokk a következő kóddal meghatározza bizonyos változók, és felhívja a funkció fCampoAdifValido (vonal 05) , hogy ellenőrizni fogja, ha a mező nevét, amely az első sor megegyezik a specifikációja a ADIF. Ha minden a mezőneveket helyes függvény meghívja az eljárást pEscreveAdif (vonal 09) fogja írni a napló a ADIF, Ha a mező érvénytelen név a funkció megmutatja hibaüzenet (vonal 07) és véget ér.

Copy / paste, vagy írja be az alábbi kódot:

 

Private Sub Workbook_Open()
  As Boolean Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Ha bNomeDoCampoValido = False Aztán
       ("Talált érvénytelen mezőneveket" & vbCrLf & "Távolítsuk el a kitöltött oszlopok piros!")
    Más
      

A VBA szerkesztő, kattintson a Beszúrás / modul. Ebben a modulban lesz a maradék kódot, hogy hívják a fő blokk.

Az állandók conLinhaInicial (vonal 02 A következő blokk) és conColunaInicial (vonal 03 A következő blokk) meg a sor 2 (Táblázatkezelő) már az első bejegyzés és az oszlop (Táblázatkezelő) Az első mező.

A funkciók fQualEAUltimaLinha (vonal 08 A következő blokk) és fQualEAUltimaColuna (vonal 17 A következő blokk) határozza meg az utolsó sor és oszlop adatai. Ez megköveteli egy üres cella végét jelenti a napló rekordok.

A funkció fCampoAdifValido (vonal 05 nem az előző bloco) tesztek érvényességét a mező neve. A ciklus "Select Case sNomeDoCampo’ (vonal 31 A következő blokk) több területen is ki specifikáció szerint a ADIF.

Az eljárás pEscreveAdif (vonal 09 nem az előző bloco) fogja írni a szöveget az oszlop, amely ADIF “ADIF RAW” az első sorban. Ez az eljárás venni a területen Ifen QSO_DATE, A két pont a területen, és hozzá egy TIME_ON M végén a mező BAND. Ahhoz, hogy ez még makró kiszabható szigorúbb ellenőrzési feltételeire vonatkozó adatokat az eljárás.

Copy / paste, vagy írja be az alábbi kódot a modul:

 

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

(sPrimeiraColuna As String) A Karakterlánc
  (sPrimeiraColuna)
    Do While Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Hurok
  (iValRecebido - 1)
End Function

(sPrimeiraColuna As String, sUltimaColuna As String) A Boolean
  (sPrimeiraColuna) Az Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Válassza Case sNomeDoCampo
         "zenekar": fCampoAdifValido = True
         "hívás": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "üzemmód": fCampoAdifValido = True
         "qso_date": fCampoAdifValido = True
         "rst_rcvd": fCampoAdifValido = True
         "rst_sent": fCampoAdifValido = True
         "Srx": fCampoAdifValido = True
         "stx": fCampoAdifValido = True
         "time_on": fCampoAdifValido = True
         "adif nyers"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  As Integer Dim iLinhaCorrente
   ""
    A iColunaCorrente = Asc(conColunaInicial) Az Asc(sUltimaColuna) - 1
      Ha LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "zenekar" Akkor
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Más
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Akkor
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Más
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Akkor
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Más
            (iLinhaCorrente, Chr(iColunaCorrente))
          End If
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Csak(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Következő

 

Kattintson a File / Save xls2adi.xls és zárja be a VBA szerkesztő.

Most másolja az adatokat a MS Excel fájlok© szeretnénk konvertálni a megfelelő oszlopok, komoly kilép a végén, és MS Excel©.

Lehet, hogy módosítania kell a beállításokat MS Excel sugurança© futtatható makrók, ha szükséges, menj az Eszközök / Makró, majd kattintson a Biztonsági, válasszon egy alacsonyabb. Ezt írták a MS Excel© em MS Windows XP© (mind a portugál változatban). Használja ezt a kódot noutra vai lingua, például az angol, helyébe a "Munka1’ por "Munka1’

Ha duplán kattint a fájlra xls2adi.xls, A kódot most lépett hajtják végre, és az oszlop “ADIF RAW” a mi Belépés ADIF formátumban.

Most, hogy befejezze, válassza ki az oszlop tartalmának “ADIF RAW” és másolás (Ctrl C), kezdő vagy Jegyzettömb (Jegyzettömb) és Cole (Ctrl V). Mentsük el a fájlt a kiterjesztés.

Ez a kód minta szabadon felhasználható, Ön szabadon használhatja. Ez egy nagyon egyszerű példát, amit csak akkor lehet megvalósítani a VBA (Visual Basic for Applications). Kiegészítik ezt a kódot érvényesítések pontosabb, különösen azokon a területeken "qso_date’ e 'time_on ", ahol a formátumok meg kell egyeznie a specifikáció ADIF. Ha hibát észlel, vagy bármilyen kérdése, ne habozzon megjegyzést. Remélem a cikk hasznos lesz.

Szavak: ,