Ferlið viðskipti frá þig inn MS Excel© í ADIF er tiltölulega einfalt og hægt að gera með smá forritun VBA. Með þessari tengilinn getur átt við upplýsingar um ADIF 1.0 sem er notað af flestum skrá þig inn, er mikilvægt að þú lesir þetta skjal.

Til að hefja viðskipti aðferð byggist á þessu námskeiði byrja á því að búa til skrá í MS Excel©. Í fyrstu lín Skrifaðu nafn reiti sem þú vilja vilja til innflutningur (Vinsamlegast athugaðu ADIF 1.0 um nafn á sviði). Jafnvel í fyrstu línu, tegund “ADIF RAW” síðasta klefi, þetta er þar sem textinn verður að vera skrifuð í ADIF.

Verkstæði er að líta svona út (en samt engin gögn á línu 2). Þótt ADIF sniði er ekki tilgreina lágmarksfjölda sviðum, amk QSO Innskráning verður að hafa gildi til Kalla, QSO_Date, Time_On, Band E Mode.

Þá velja allt verkstæði og snið frumurnar sem texta.

Vistaðu skrána sem xls2adi.xls (verkstæði í MS Excel©)

Leyfðu okkur að skrifa núna og settu kóðann í VBA. Farðu í Tools / Macro og smelltu á Visual Basic Editor (Alt F11).

Í VBA ritstjóri tvöfaldur-smellur 'ThisWorkbook’ sem er í 'Project – 'VBAProject. Þetta er þar sem þú færð á helstu kóðanum sem mun hlaupa þegar þú opnar þessa skrá aftur.

Í kóðanum sem fylgir setur sum breytur og kallar virka fCampoAdifValido (lína 05) sem mun athuga hvort sviði nafn sem er á fyrstu línu í samræmi við forskrift sem ADIF. Ef öll sviði nöfn eru réttar virka símtöl málsmeðferðina pEscreveAdif (lína 09) mun skrifa þig inn í ADIF, Ef sviði hefur ógilt heiti virka sýnir villuboð (lína 07) og endar.

Afrita / líma eða tegund the hópur stuðningsmanna merkjamál:

 

Private Sub Workbook_Open()
  Eins Boolean Dimmur bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    Ef bNomeDoCampoValido = False Þá
       ("Fann ógild nöfn sviði" & vbCrLf & "Fjarlægja dálka fyllt með rauðu!")
    Else
      

Í VBA ritstjóri, smelltu Setja inn / Module. Er þetta mát vilja fá eftirstandandi kóða sem kennt er við helstu blokk.

The fastar conLinhaInicial (lína 02 næsta blokk) og conColunaInicial (lína 03 næsta blokk) skilgreina línu 2 (Töflureiknir) hafa fyrstu skráningu og að dálkur A (Töflureiknir) Fyrsta svæðið.

Hlutverk fQualEAUltimaLinha (lína 08 næsta blokk) og fQualEAUltimaColuna (lína 17 næsta blokk) mun ákvarða síðustu línu og dálki gögn. Þetta krefst tómt klefi merkir enda þig inn færslur.

Fallið fCampoAdifValido (lína 05 á fyrri blokk) prófar gildi sviði nafn. Veldu hringrás "Case sNomeDoCampo’ (lína 31 næsta blokk) fleiri sviðum má bæta í samræmi við forskrift ADIF.

Aðferðin pEscreveAdif (lína 09 á fyrri blokk) mun skrifa texta í dálki sem hefur ADIF “ADIF RAW” í fyrstu röðinni. Í þessari aðferð er tekin frá sviði Ifen QSO_DATE, tvö stig af sviði og bætt TIME_ON M í lok hljómsveit sviði. Til að gera þetta meira fjölvi strangari skilyrði má gera fyrir sannprófun gagna í þessari aðferð.

Afrita / líma eða slá inn eftirfarandi kóða í mát:

 

Valkostur Skýr
 2
Almenn const conColunaInicial Eins String = "A"
Eins Heiltölur Public iUltimaLinha
(iPrimeiraLinha Eins heiltölu) Eins heiltölu
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    Loop
   - 1
Endir Fall

(The String sPrimeiraColuna) The String
  (sPrimeiraColuna)
    Gera á meðan Len(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    Loop
  (iValRecebido - 1)
Endir Fall

(The String sPrimeiraColuna, sUltimaColuna Eins String) The Boolean
  (sPrimeiraColuna) Til Svæðisþjónustu(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      Veldu Case sNomeDoCampo
         "band": fCampoAdifValido = True
         "kalla": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "ham": 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 hrár"
          fCampoAdifValido = True
           - 64
        Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = False
        ()
  Eins Heiltölur Dimmur iLinhaCorrente
   ""
    Fyrir iColunaCorrente = Svæðisþjónustu(conColunaInicial) Til Svæðisþjónustu(sUltimaColuna) - 1
      Ef LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "band" Þá
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      Else
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" Þá
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        Else
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" Þá
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          Else
            (iLinhaCorrente, Chr(iColunaCorrente))
          End Ef
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & Aðeins(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "EOR" & ">"
  Næsta

 

Smelltu File / Save xls2adi.xls og loka VBA ritstjóri.

Nú afrita gögn úr skrám þeirra MS Excel© þú vilt breyta til viðeigandi dálka, alvarlega í lok og hætta á MS Excel©.

Þú gætir þurft að breyta stillingum fyrir löglega mælt MS Excel© að keyra Fjölvi, ef þörf krefur fara í Tools / Macro og smelltu Öryggi, velja lægri. Þetta var skrifað fyrir MS Excel© em MS Windows XP© (bæði í Portúgal útgáfa). Ef þú notar þennan kóða í öðru tungumáli, til dæmis ensku, skipta Sheet1 Hugtakið "’ Por 'Sheet1’

Þegar þú tvöfaldur-smellur the skrá xls2adi.xls, númerið við bætist bara verður að keyra og dálkur “ADIF RAW” er Innskrá okkar í ADIF formi.

Nú að ljúka, velja efni í dálkinn “ADIF RAW” e copie (Ctrl C), byrja Notepad (Minnispunktur) e Cole (Ctrl V). Vistaðu skrána með frekari framlengingu.

Þessi kóði sýnishorn er frjálst að nota, er frjálst að nota. Það er mjög einfalt dæmi um hvað getur aðeins gert með því að nota VBA (Visual Basic fyrir umsókn). Bættu þennan kóða validations með nákvæmari, sérstaklega í qso_date reitina '’ 'time_on E', þar sem snið verður að passa texta ADIF. Ef þú tekur einhverjar villur eða hafið einhverjar spurningar, ekki hika við að tjá. Ég vona að hlutur vilja vera gagnlegt.

Tags: ,