Konverteerimise käigus MS Excel logiraamat© kuni ADIF on suhteliselt lihtne ja seda saab teha kasutades natuke programmeerimine VBA. Läbi selle link võib viidata kirjeldused ADIF 1.0 mida kasutavad kõige log, On oluline, et te loete selle dokumendi.

Et alustada muundamise protsess, mis põhineb selle juhendaja start luues fail MS Excel©. Esimesel pesu Kirjutage nimi väljad te soovite importida (Palun kontrollige ADIF 1.0 nime väljad). Isegi esimene rida, liik “ADIF RAW” viimasesse lahtrisse, see on kui tekst on kirjutatud ADIF.

Tööleht näeb välja selline (kuid siiski ei ole andmeid liinil 2). Kuigi ADIF formaat ei täpsusta minimaalne arv välju, vähemalt oma QSO logi peab olema väärtusi Call, QSO_Date, Time_On, Band e Režiim.

Siis Kogu töövihiku valimiseks ja vormi rakke tekstina.

Salvestage fail nagu xls2adi.xls (tööleht MS Excel©)

Olgem nüüd kirjutada ja sisestage kood VBA. Mine Tools / Macro ja klõpsake Visual Basic Editor (Alt F11).

In VBA toimetaja topeltklõps "ThisWorkbook’ mis on "Projekti – VBAProject ". See on koht, kus saad peamine ploki koodi, mis töötab, kui sa seda faili avada uuesti.

Ploki koodi, mis järgneb seab mõned muutujad ning kutsub funktsioon fCampoAdifValido (rida 05) et kontrollib, kas välja nime, mis on esimesel real vastab spetsifikatsiooni ADIF. Kui kõik väljanimed on õige funktsioon nõuab menetluse pEscreveAdif (rida 09) kirjutada sisse ADIF, Kui väli on kehtetu nimi funktsioon näitab veateadet (rida 07) ja lõpeb.

Copy / paste või tippige järgmine kood:

 

Private Sub Workbook_Open()
  Nagu Boolean Dim bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Kui bNomeDoCampoValido = False Siis
       ("Leitud vigane väljanimed" & vbCrLf & "Eemalda veerud täidetakse punane!")
    Teine
      

In VBA redaktori nuppu Lisa / Module. Selles moodulis saab ülejäänud kood, mida nimetatakse peamise blokeerida.

Konstandid conLinhaInicial (rida 02 järgmise ploki) ja conColunaInicial (rida 03 järgmise ploki) määratleda rida 2 (Arvutustabeli) on esimese registreerimise ajal ja et kolonn (Arvutustabeli) Esimene väli.

Funktsioone fQualEAUltimaLinha (rida 08 järgmise ploki) ja fQualEAUltimaColuna (rida 17 järgmise ploki) määrab viimase rea ja veeru andmed. See nõuab Tühi lahter tähendab lõppu logi arvestust.

Funktsioon fCampoAdifValido (rida 05 Eelmise blokeerida) testib kehtivuse välja nimi. Tsükli "Select Case sNomeDoCampo’ (rida 31 järgmise ploki) rohkem välju saab lisada vastavalt spetsifikatsiooni ADIF.

Menetluse pEscreveAdif (rida 09 Eelmise blokeerida) kirjutan teksti veerus, mis on ADIF “ADIF RAW” Esimene rida. See menetlus on võetud valdkonnas Ifen QSO_DATE, kahte punkti valdkonnas ning lisas TIME_ON M lõpus valdkonnas BAND. Et muuta see rohkem makro saab kehtestada rangemaid tingimusi kontrollides andmed selles menetluses.

Copy / paste või tippige järgmine kood moodul:

 

Võimalus selgesõnaline
 2
Avalik Const conColunaInicial As String = "A"
Nagu Integer Avalik iUltimaLinha
(iPrimeiraLinha As Integer) Nagu Integer
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    Silmus
   - 1
End Function

(String sPrimeiraColuna) String
  (sPrimeiraColuna)
    Kas Kuigi Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Silmus
  (iValRecebido - 1)
End Function

(String sPrimeiraColuna, sUltimaColuna As String) Boole'i
  (sPrimeiraColuna) Et Asc(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Valige kohtuasjas sNomeDoCampo
         "bänd": fCampoAdifValido = True
         "kõne": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "režiimis": 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 toores"
          fCampoAdifValido = True
           - 64
        Kohtuasi Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  Nagu Integer Dim iLinhaCorrente
   ""
    For iColunaCorrente = Asc(conColunaInicial) Et Asc(sUltimaColuna) - 1
      Kui LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "bänd" Siis
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Teine
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Siis
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Teine
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Siis
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Teine
            (iLinhaCorrente, Chr(iColunaCorrente))
          End Kui
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Ainult(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Järgmine

 

Vajuta File / Save xls2adi.xls ja sulgege VBA redaktori.

Nüüd kopeeri andmed oma MS Excel faile© soovite teisendada sobivale kolonnid, tõsine quit lõpus ja MS Excel©.

Teil võib tekkida vajadus seadete muutmiseks MS Excel sugurança© käivitada makrosid, vajadusel minna Tools / Macro ja klõpsa Security, valida madalama. See oli kirjutatud MS Excel© em MS Windows XP© (nii Portugali versioon). Kui te kasutate seda koodi teises keeles, nt inglise keeles, asendada sõna "Sheet1’ por "Sheet1’

Kui te topeltklõpsake faili xls2adi.xls, kood äsja sisestatud viiakse ellu ja veerg “ADIF RAW” Meie Logi sisse ADIF formaadis.

Nüüd lõpuni, valige veerg sisu “ADIF RAW” e copie (Ctrl C), Käivitage Notepad (Notepad) e cole (Ctrl V). Salvesta fail täiendavat pikendamist.

See kood ei esine proovis vaba kasutamine, võite vabalt kasutada. See on väga lihtne näide, mida saab teha ainult kasutades VBA (Visual Basic for Applications). Täiendada seda koodi validations senisest täpsema, eriti sellistes valdkondades "qso_date’ e time_on ", kus formaadid peavad vastama spetsifikatsioonile ADIF. Kui märkate vigu või on teil küsimusi, ärge kartke kommenteerida. Ma loodan, et artikkel on kasulik.

Sildid: ,