عملية التحويل من السجل MS في Excel© إلى ADIF بسيطة نسبيا ويمكن القيام به قليلا من البرمجة VBA. من خلال هذا ربط ويمكن الرجوع إلى مواصفات ADIF 1.0 والذي يستخدم من قبل معظم السجل, المهم أن تقرأ هذه الوثيقة.

لبدء عملية التحويل على أساس هذا البرنامج التعليمي تبدأ عن طريق إنشاء ملف في MS Excel©. في الكتان first كتابة اسم الحقول ستحتاج إلى استيراد (يرجى التحقق من ADIF 1.0 من اسم من الحقول). حتى في السطر الأول, نوع “ADIF RAW” الخلية الأخيرة, هذا هو المكان الذي ستتم كتابة النص في ADIF.

ورقة العمل هذه لتبدو وكأنها (ولكن لا تزال توجد بيانات على الخط 2). على الرغم من أن شكل ADIF لا تحدد الحد الأدنى لعدد الحقول, على الأقل يجب أن يكون السجل الخاص QSO القيم إلى دعوة, QSO_Date, Time_On, E وضع حزام.

ثم حدد ورقة العمل بأكملها وتنسيق الخلايا كنص.

حفظ الملف ك xls2adi.xls (ورقة عمل في MS Excel©)

دعونا الآن كتابة وإدراج رمز في VBA. انتقل إلى أدوات / ماكرو وانقر محرر Visual Basic (ALT F11).

في محرر VBA انقر نقرا مزدوجا فوق "ThisWorkbook’ وهذا هو في مشروع ' – VBAProject ". هذا هو المكان الذي تحصل الكتلة الرئيسية من التعليمات البرمجية التي سيتم تشغيلها عند فتح هذا الملف مرة أخرى.

كتلة من التعليمات البرمجية التي تحدد يلي بعض المتغيرات ويستدعي الدالة fCampoAdifValido (خط 05) من شأنها أن تحقق إذا كان اسم الحقل الذي هو في السطر الأول يطابق مواصفات ADIF. إذا كانت كافة أسماء الحقول هي وظيفة الصحيح يستدعي إجراء pEscreveAdif (خط 09) وسوف يكتب في سجل ADIF, إذا كان الحقل يحتوي على اسم غير صالح الدالة يظهر رسالة خطأ (خط 07) انتهت ه.

نسخ / لصق أو اكتب التعليمة البرمجية التالية:

 

خاصة الفرعية Workbook_Open()
  كما bNomeDoCampoValido خافت منطقية
  (conLinhaInicial)
  sUltimaColuna = fQualEAUltimaColuna(conColunaInicial)
  bNomeDoCampoValido = fCampoAdifValido(conColunaInicial, sUltimaColuna)
    إذا bNomeDoCampoValido = خطأ ثم
       ("العثور على أسماء الحقول غير صالحة" & vbCrLf & "إزالة أعمدة مليئة باللون الأحمر!")
    آخر
      

في محرر VBA ، انقر فوق إدراج / الوحدة. وسوف يتم في هذه الوحدة رمز المتبقية التي يتم استدعاؤها من قبل الكتلة الرئيسية.

الثوابت conLinhaInicial (خط 02 كتلة المقبل) وconColunaInicial (خط 03 كتلة المقبل) تحديد خط 2 (جدول) وتسجيل أول وأن العمود A (جدول) الحقل الأول.

وظائف fQualEAUltimaLinha (خط 08 كتلة المقبل) ه fQualEAUltimaColuna (خط 17 كتلة المقبل) ستحدد الصف الأخير والبيانات العمود. هذا يتطلب وجود خلية فارغة يعني نهاية السجلات السجل.

وظيفة fCampoAdifValido (خط 05 كتلة السابقة) تختبر صحة اسم الحقل. دورة "تحديد حالة sNomeDoCampo’ (خط 31 كتلة المقبل) يمكن إضافة المزيد من الحقول وفقا للمواصفات ADIF.

الإجراء pEscreveAdif (خط 09 كتلة السابقة) سوف أكتب النص في العمود الذي ADIF “ADIF RAW” السطر الأول. يتم اتخاذ هذا الإجراء من QSO_DATE Ifen الميدان, واضاف نقطتين من الحقل وM TIME_ON في نهاية الحقل BAND. ويمكن لجعل هذا الماكرو يمكن فرض المزيد من الشروط أكثر صرامة لفحص البيانات في هذا الإجراء.

نسخ / لصق أو اكتب التعليمة البرمجية التالية داخل الوحدة:

 

الخيار صريح
 2
الجمهور CONST conColunaInicial كسلسلة = "A"
كما iUltimaLinha العامة عدد صحيح
(وصحيح iPrimeiraLinha) وصحيح
  (Folha1.Cells(iValRecebido, "A")) > 0
      iValRecebido = iValRecebido + 1
    أنشوطة
   - 1
نهاية الدالة

(سلسلة sPrimeiraColuna) السلسلة
  (sPrimeiraColuna)
    ورغم قيام ليون(Folha1.Cells(1, مركز حقوق الانسان(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    أنشوطة
  (iValRecebido - 1)
نهاية الدالة

(سلسلة sPrimeiraColuna, sUltimaColuna كسلسلة) ومنطقية
  (sPrimeiraColuna) لتصاعدي(sUltimaColuna)
      sNomeDoCampo = LCase(Folha1.Cells(1, iColunaCorrente - 64))
      حدد حالة sNomeDoCampo
         "فرقة": = صحيح fCampoAdifValido
         "دعوة": = صحيح fCampoAdifValido
         "CQZ": = صحيح fCampoAdifValido
         "طريقة": = صحيح fCampoAdifValido
         "qso_date": = صحيح fCampoAdifValido
         "rst_rcvd": = صحيح fCampoAdifValido
         "rst_sent": = صحيح fCampoAdifValido
         "SRX": = صحيح fCampoAdifValido
         "STX": = صحيح fCampoAdifValido
         "time_on": = صحيح fCampoAdifValido
         "adif الخام"
          = صحيح fCampoAdifValido
           - 64
        حالة أخرى
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = خطأ
        ()
  كما iLinhaCorrente خافت صحيح
   ""
    لتصاعدي = iColunaCorrente(conColunaInicial) لتصاعدي(sUltimaColuna) - 1
      إذا LCase(Folha1.Cells(1, مركز حقوق الانسان(iColunaCorrente))) = "فرقة" ثم
        (iLinhaCorrente, مركز حقوق الانسان(iColunaCorrente)) & "M"
      آخر
        (Folha1.Cells(1, مركز حقوق الانسان(iColunaCorrente))) = "qso_date" ثم
          (Folha1.Cells(iLinhaCorrente, مركز حقوق الانسان(iColunaCorrente)), "-", "")
        آخر
          (Folha1.Cells(1, مركز حقوق الانسان(iColunaCorrente))) = "time_on" ثم
            (Folha1.Cells(iLinhaCorrente, مركز حقوق الانسان(iColunaCorrente)), ":", "")
          آخر
            (iLinhaCorrente, مركز حقوق الانسان(iColunaCorrente))
          إذا نهاية
         & "<" & LCase(Folha1.Cells(1, مركز حقوق الانسان(iColunaCorrente))) & ":" & فقط(sTextoNaCelula) & ">" & sTextoNaCelula
    (iLinhaCorrente, iAdifRaw) = SLinhaEmAdif & "<" & "الاستخلاص المعزز للنفط" & ">"
  التالي

 

انقر فوق ملف / حفظ xls2adi.xls وإغلاق محرر VBA.

الآن نسخ البيانات في ملفات مايكروسوفت إكسل© تريد تحويله إلى الأعمدة المناسبة, استقال في نهاية خطيرة ، ومايكروسوفت إكسل©.

قد تحتاج إلى تغيير إعدادات اكسل sugurança© لتشغيل وحدات الماكرو, إذا لزم الأمر انتقل إلى أدوات / ماكرو والأمن فوق, اختيار أدنى مستوى. وقد كتب هذا لمايكروسوفت إكسل© م MS نظام التشغيل Windows XP© (سواء في النسخة البرتغالية). إذا كان سيتم استخدام هذا الرمز في لغة أخرى, على سبيل المثال في اللغة الإنجليزية, استبدال SHEET1 مصطلح '’ POR 'SHEET1’

عند النقر المزدوج فوق ملف xls2adi.xls, وسيتم تنفيذ التعليمات البرمجية التي أدخلتها فقط والعمود “ADIF RAW” وسجل لدينا في شكل ADIF.

الآن وحتى النهاية, تحديد محتويات العمود “ADIF RAW” ه نسخة (CTRL C), بدء تشغيل المفكرة (المفكرة) ه مدرسة (CTRL V). حفظ الملف مع ملحق إضافي.

هذه العينة رمز الحرية في استخدام, يمكنك استخدام بحرية. بل هو مثال بسيط جدا على ما يمكن أن يتم إلا باستخدام VBA (Visual Basic للتطبيقات). يكمل هذا الرمز مع التثبت أكثر دقة, وخاصة في مجالات qso_date '’ ه 'time_on', حيث يجب أن التنسيقات تطابق مواصفات ADIF. إذا كنت تلاحظ وجود خطأ أو لديك أي أسئلة, لا تتردد في التعليق. وآمل هذه المادة سوف تكون مفيدة.

به: ,