从MS Excel的转换过程记录©ADIF 相对简单,可以使用的编程位 VBA. 通过这一 链接 可以参考的ADIF的规格 1.0 这是使用最日志, 重要的是你阅读本文件.

要开始创建一个在MS Excel文件转换过程中对本教程的开始©. 在第一个亚麻写字段的名称,您将要导入 (请检查ADIF 1.0 该字段的名称). 即使在第一线, 键入 “将ADIF的RAW” 最后一个单元格, 这是其中的文本将在ADIF书面.

工作表是这个样子 (但仍没有数据就行了 2). 虽然ADIF格式不指定字段的最小数目, 至少你的通联记录必须有值呼叫, QSO_Date, TIME_ON, 乐队发送模式.

然后选择整个工作表,格式为文本的单元格.

将该文件保存为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 = FALSE,则
       ("发现无效的字段名称" & vbCrLf & "删除红色填充的列!")
    其他
      

在VBA编辑器,单击插入/模块. 在此模块将剩余的代码是由主块中调用.

常量conLinhaInicial (行 02 下块) 和conColunaInicial (行 03 下块) 定义行 2 (电子表格) 有首次登记,而列A (电子表格) 第一场.

该功能fQualEAUltimaLinha (行 08 下块) 和fQualEAUltimaColuna (行 17 下块) 将决定最后的行和列数据. 这需要一个空细胞是指日志记录结束.

函数fCampoAdifValido (行 05 上块) 测试的有效性字段名称. 周期的选择案例sNomeDoCampo’ (行 31 下块) 更多的领域可以添加按照规范的ADIF.

该程序pEscreveAdif (行 09 上块) 将写在列文本已ADIF “将ADIF的RAW” 第一线. 这个过程是从外地Ifen QSO_DATE, 该领域的两个分,在该领域的BAND结束TIME_ON M. 为了使这更宏观的,可处以在此过程中检查数据更加严格的条件.

复制/粘贴或在模块中键入下面的代码:

 

显式的选项
 2
公共CONST作为字符串conColunaInicial = "一"
作为整数公开iUltimaLinha的
(iPrimeiraLinha作为整数) 作为整数
  (Folha1.Cells(iValRecebido, "一")) > 0
      iValRecebido = iValRecebido + 1
    循环
   - 1
结束功能

(弦乐sPrimeiraColuna) 的字符串
  (sPrimeiraColuna)
    DO WHILE长度(Folha1.Cells(1, CHR(iValRecebido))) > 0
      iValRecebido = iValRecebido + 1
    循环
  (iValRecebido - 1)
结束功能

(弦乐sPrimeiraColuna, sUltimaColuna作为字符串) 在布尔
  (sPrimeiraColuna) 要升序(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
         "ADIF原料"
          fCampoAdifValido = TRUE
           - 64
        的Case Else
          (1, iColunaCorrente - 64).Interior.Color = RGB(255, 0, 0)
          fCampoAdifValido = FALSE
        ()
  为整数昏暗iLinhaCorrente的
   ""
    对于iColunaCorrente =升序(conColunaInicial) 要升序(sUltimaColuna) - 1
      如果LCASE(Folha1.Cells(1, CHR(iColunaCorrente))) = "乐队" 然后
        (iLinhaCorrente, CHR(iColunaCorrente)) & "中号"
      其他
        (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))
          END IF
         & "<" & 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微软Windows XP© (无论是在葡萄牙语版本). 如果您将使用另一种语言的代码, 例如,在英语, 取代“工作表Sheet1’ 陈健波“工作表Sheet1’

当您双击该文件xls2adi.xls, 您刚才输入的代码将被执行,并且列 “将ADIF的RAW” 是我们的登录ADIF格式.

现在完成, 选择列内容 “将ADIF的RAW” Ë copie (按Ctrl C), 启动记事本 (记事本) Ë科尔 (按Ctrl V). 除与其他扩展文件.

此代码示例是免费使用, 您可以自由使用. 这是一个什么样的,只能通过使用VBA很简单的例子 (Visual Basic应用程序). 补更准确的代码验证, 尤其是在字段qso_date’ E'TIME_ON“, 其中的格式必须符合规范ADIF. 如果您发现有错误或有任何问题, 不要犹豫评论. 我希望将是有益的文章.

标签: ,