程前 吳純福
摘 要:基于ExcelVBA實現的專題地圖創建模型,在VBA編程環境下,通過對google地球的二次開發,實現了測試log大批量、高效率、智能化創建專題地圖。
關鍵詞:excel;VBA;專題地圖;log;電平值;步長
0 引言
通信信號測試軟件層出不窮,各種測試軟件導出的信號測試log一般都只能轉換成mapinfo格式,然后通過mapinfo創建專題地圖來展示在google地球上。如何快速處理多個excel文件,并創建google專題地圖,本文通過研究基于ExcelVBA的方法實現批量專題地圖創建,從而提高工作效率。
1 專題地圖創建模型功能
基于ExcelVBA實現的專題地圖創建模型(以下簡稱“模型”)主要解決大量測試log快速處理為google地球專題地圖文件,其主要功能如下:
(1)自定義的測試信號電平值區間和顯示顏色。
(2)測試log快速轉換為google專題地圖。
(3)多個測試log只需一鍵處理。
2 專題地圖創建模型介紹
2.1 測試log存放要求
“網優先鋒”軟件測試log為excel文件,將導出的文件存放在指定目錄下,本文以“D:\11”為例。模型在使用時會自動檢索指定目錄下所有excel文件,根據工具格式自動調整輸入內容,并逐一進行處理。實現該功能代碼如下:
PublicFunctionHH()
WithThisWorkbook.Sheets(2)
.Range(“A2:B1000”).ClearContents
DimstartfolderAsString
startfolder=”D:\11\”指定文件夾
Setfolderlist=CreateObject(“scripting.dictionary”)
Setfilelist=CreateObject(“scripting.dictionary”)
i=2
folderlist.Addstartfolder,””
DoWhilefolderlist.Count>0
ForEachFolderNameInfolderlist.keys
fname=Dir(FolderName,vbDirectory)
DoWhilefname<>””
Iffname<>”..”Andfname<>”.”Then
IfGetAttr(FolderName&fname)AndvbDirectoryThen
folderlist.AddFolderName&fname&”\”,””
Else
filelist.AddFolderName&fname,””
EndIf
EndIf
fname=Dir
Loop
folderlist.Remove(FolderName)
Next
Loop
ForEacharrInfilelist.keys
.Range(“A”&i).Value=arr
.Range(“B”&i).Value=Mid(arr,InStrRev(arr,”\”)+1)
i=i+1
Next
EndWith
EndFunction
2.2 模型原理介紹
首先,設定步長和比例,一般步長設置為0.5米,比例設置為0.3。
其次,設置不同信號電平值區間及相應的顏色,從綠色到紅色信號強度依次減弱。
最后,設置相應的“經度”、“緯度”和“電平值”所對應的列,并進行處理和轉換。主要代碼如下:
PublicFunctioncreatkmlfromexcell()
‘yueminjun
Dimh,st,x,y,zAsDouble
Dimstr,tmptAsString
DimDAT()AsByte,DAT1()AsByte
DimfilenameAsString
h=0.5
st=0.3
CC1=”FF00FF00”
CC2=”FFFF0000”
CC3=”FF00FFFF”
CC4=”FFFF00FF”
CC5=”FF0000FF”
r=Cells(65535,1).End(xlUp).row
jingdu=2
weidu=3
dingzhilie=4
SelectCasez
CaseVal(-70)ToVal(-20)
CaseVal(-80)ToVal(-70)
CaseVal(-90)ToVal(-80)
CaseVal(-100)ToVal(-90)
CaseVal(-150)ToVal(-100)重復代碼
CaseElse
EndSelect
EndIf
Next
tmpt=”