תהליך הגיור מתוך יומן של MS Excel© אל עדיף היא פשוטה יחסית, ניתן לעשות זאת באמצעות מעט תכנות VBA. דרך זו לקשר ניתן לעיין במפרט של עדיף 1.0 המשמש יומן ביותר, חשוב לך לקרוא מסמך זה.

כדי להתחיל תהליך גיור בהתבסס על תחילת הדרכה זו על ידי יצירת קובץ ב-MS Excel©. ב פשתן הראשון כתוב את השם של השדות אתה רוצה לייבא (אנא בדוק את עדיף 1.0 שמו של השדות). אפילו בשורה הראשונה, סוג “עדיף RAW” נה התא האחרון, זה המקום שבו הטקסט יהיה כתוב עדיף.

גליון היא להיראות כך (אך עדיין אין נתונים על הקו 2). אף על פי פורמט עדיף לא לציין מספר מינימלי של שדות, לפחות יומן QSO שלך חייב להיות ערכים שיחה, QSO_Date, Time_On, להקת מצב הדואר.

לאחר מכן בחר את גליון העבודה כולו ולעצב את התאים כטקסט.

שמור את הקובץ בשם xls2adi.xls (גליון ב-MS Excel©)

עכשיו תן לנו לכתוב להכניס את הקוד ב-VBA. עבור אל כלים / מאקרו ולאחר מכן לחץ על עורך Visual Basic (Alt F11).

בעורך VBA ThisWorkbook 'לחץ פעמים על’ שנמצא ב 'הפרויקט – VBAProject ". זה המקום שבו אתה מקבל את הבלוק העיקרי של קוד כי יפעל בעת פתיחת קובץ זה שוב.

הבלוק של הקוד הבא מגדיר כמה משתנים מכנה fCampoAdifValido פונקציה (קו 05) כי תבדוק אם שם השדה כי הוא בשורה הראשונה מתאים למפרט של עדיף. אם כל שמות השדות הם פונקציה נכונה מכנה pEscreveAdif ההליך (קו 09) אכתוב על היומן עדיף, אם שדה יש ​​שם לא חוקי הפונקציה מראה הודעת שגיאה (קו 07) ומסתיים.

העתק / הדבק או להקליד את הקוד הבא:

 

Private Sub Workbook_Open()
  כוליאני דים bNomeDoCampoValido
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    אם bNomeDoCampoValido = שקר אז
       ("שמות לא חוקיים נמצאו בשדה" & vbCrLf & "הסר את העמודות מלאים באדום!")
    אחר
      

בעורך VBA, לחץ על הוסף / מודול. במודול זה יהיה קוד הנותרים כי נקרא על ידי בלוק הראשי.

הקבועים conLinhaInicial (קו 02 הבלוק הבא) ו conColunaInicial (קו 03 הבלוק הבא) להגדיר את קו 2 (גיליון אלקטרוני) יש את אחת קודם כי העמודה (גיליון אלקטרוני) בשדה הראשון.

הפונקציות fQualEAUltimaLinha (קו 08 הבלוק הבא) ו fQualEAUltimaColuna (קו 17 הבלוק הבא) שיקבעו את השורה האחרונה ונתונים עמודה. זה דורש תא ריק פירושה סוף את הרשומות יומן.

FCampoAdifValido פונקציה (קו 05 לעשות bloco הקודם) בודק את תוקפו של שם השדה. המחזור 'בחר מקרה sNomeDoCampo’ (קו 31 הבלוק הבא) שדות יותר ניתן להוסיף בהתאם למפרט של עדיף.

PEscreveAdif ההליך (קו 09 לעשות bloco הקודם) תכתוב את הטקסט בעמודה שיש עדיף “עדיף RAW” בשורה הראשונה. הליך זה נלקח מתוך Ifen בתחום QSO_DATE, שתי נקודות של השדה והוסיף M TIME_ON בסוף BAND השדה. כדי להפוך את זה מאקרו יותר ניתן להטיל תנאים מחמירים יותר עבור הנתונים בדיקת בהליך זה.

העתק / הדבק או להקליד את הקוד הבא בתוך מודול:

 

אפשרות מפורשת
 2
Const אישי conColunaInicial כמו מחרוזת = "A"
As Integer האישי iUltimaLinha
(iPrimeiraLinha כמספר שלם) As Integer
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    לולאה
   - 1
פונקצית הסוף

(מחרוזת sPrimeiraColuna) המחרוזת
  (sPrimeiraColuna)
    האם בעוד לן(Folha1.Cells(1, Chr(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    לולאה
  (iValRecebido - 1)
פונקצית הסוף

(מחרוזת sPrimeiraColuna, sUltimaColuna כמחרוזת) וליאני
  (sPrimeiraColuna) כדי ASC(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      בחר הקייס sNomeDoCampo
         "להקה": fCampoAdifValido = True
         "שיחה": fCampoAdifValido = True
         "CQZ": fCampoAdifValido = True
         "מצב": fCampoAdifValido = True
         "qso_date": fCampoAdifValido = True
         "rst_rcvd": fCampoAdifValido = True
         "rst_sent": fCampoAdifValido = True
         "SRX": fCampoAdifValido = True
         "stx": fCampoAdifValido = True
         "time_on": fCampoAdifValido = True
         "עדיף גלם"
          fCampoAdifValido = True
           - 64
        מקרה אחר
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = שקר
        ()
  As Integer דים iLinhaCorrente
   ""
    עבור iColunaCorrente = ASC(conColunaInicial) כדי ASC(sUltimaColuna) - 1
      אם LCase(Folha1.Cells(1, Chr(iColunaCorrente))) = "להקה" אז
        (iLinhaCorrente, Chr(iColunaCorrente)) & "M"
      אחר
        (Folha1.Cells(1, Chr(iColunaCorrente))) = "qso_date" אז
          (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), "-", "")
        אחר
          (Folha1.Cells(1, Chr(iColunaCorrente))) = "time_on" אז
            (Folha1.Cells(iLinhaCorrente, Chr(iColunaCorrente)), ":", "")
          אחר
            (iLinhaCorrente, Chr(iColunaCorrente))
          אנד אם
         & "<" & LCase(Folha1.Cells(1, Chr(iColunaCorrente))) & ":" & רק(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "בעבור" & ">"
  הבא

 

לחץ על קובץ / שמור xls2adi.xls ולסגור את עורך ה-VBA.

עכשיו להעתיק את הנתונים בקבצים שלך MS Excel© אתה רוצה להמיר את העמודות המתאימות, קשה לפרוש בסוף ו-MS Excel©.

ייתכן שיהיה עליך לשנות את ההגדרות עבור MS Excel sugurança© כדי להפעיל פקודות מאקרו, אם יש צורך ללכת כלים / מאקרו ולחץ על אבטחה, לבחור רמה נמוכה יותר. זה נכתב עבור MS Excel© em-MS Windows XP© (הן בגרסה פורטוגזית). השתמש בקוד זה הוא noutra VAI língua, למשל באנגלית, להחליף את המונח 'גיליון 1’ גיליון 1 'por’

בעת לחיצה כפולה על קובץ xls2adi.xls, בקוד אתה פשוט נכנס יבוצעו והעמודה “עדיף RAW” הוא התחבר שלנו בפורמט עדיף.

עכשיו כדי לסיים, בחר את תוכן עמודה “עדיף RAW” ולהעתיק (Ctrl C), להתחיל או Notepad (Notepad) וסלט (Ctrl V). שמור את הקובץ עם סיומת נוספים.

זה דוגמת קוד חופשי להשתמש, אתה יכול להשתמש באופן חופשי. זוהי דוגמה פשוטה מאוד של מה יכול להיעשות רק באמצעות VBA (Visual Basic for Applications). משלימים זה אימותים קוד עם יותר מדויק, במיוחד בqso_date של השדות’ 'Time_on' הדואר, איפה התבניות חייבים להיות תואמים עדיף מפרט. אם אתה מבחין שגיאה או יש לך שאלות, אל תהססו להעיר. אני מקווה שמאמר יהיה שימושי.