發現excel的vba功能真是批量處理的一把利刃,工作中小試牛刀了一把,將excel中度分秒形式的座標批量處理成十進位制度形式,處理完後用於gis展點製圖。
原excel資料如下:
vba**如下:
1處理完結果如下:subcoorder()
2dim longitude, latitude as
string
, arr
3dim num as
integer
4dim longcolidx as
integer
5dim latcolidx as
integer
6 longcolidx = 3
7 latcolidx = 8
a:a"))9
for i = 2
tonum
10 longitude =cells(i, longcolidx)
11 arr = split(longitude, "°"
)12 cells(i, longcolidx + 1) = arr(0
)13 longitude = arr(1
)14 arr = split(longitude, "'"
)15 cells(i, longcolidx + 2) = arr(0
)16 longitude = arr(1
)17 arr = split(longitude, """"
)18 cells(i, longcolidx + 3) = arr(0
)19 cells(i, longcolidx + 4) = cells(i, longcolidx + 1) + cells(i, longcolidx + 2) / 60 + cells(i, longcolidx + 3) / 3600
2021 latitude =cells(i, latcolidx)
22 arr = split(latitude, "°"
)23 cells(i, latcolidx + 1) = arr(0
)24 longitude = arr(1
)25 arr = split(longitude, "'"
)26 cells(i, latcolidx + 2) = arr(0
)27 longitude = arr(1
)28 arr = split(longitude, """"
)29 cells(i, latcolidx + 3) = arr(0
)30 cells(i, latcolidx + 4) = cells(i, latcolidx + 1) + cells(i, latcolidx + 2) / 60 + cells(i, latcolidx + 3) / 3600
31nexti32
end sub
結論:1、對於excel大批量資料處理,效率極高。
① 開發環境方面,無需搭建特定的開發環境,在excel裡就可以進行編碼;
② 編碼方面,由於直接是寄生於excel自身,相當於一種內嵌的api,其api介面簡單、整合度高、呼叫方便;
2、上述**其實可以額外起乙個作用,就是對原始度分秒資料的文字格式做質檢。
附:用vba得到excel**中的行數和列數
Excel中使用VBA訪問Access資料庫
excel中使用vba的優點 巨集是vba的一種簡單應用。巨集可以通過編寫vba 錄製巨集兩種方式獲得。通常是先錄製巨集,再在獲得的巨集的基礎上進行語句優化調整,最後得到想要的巨集。在 誰說菜鳥不會資料分析 工具篇 第四章 讓報告自動化中,涉及到根據輸入日期,從access資料庫中提取相關資料到ex...
EXCEL中使用VBA取有效使用區域
原創 牛超 2009 06 osaka 如題,修改原來的指令碼,引用usedrange private sub fillvalueauto astr as string,currow as long dim svalue as string dim sbatname as string dim sp...
Mysql中使用explain進行效能分析
explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。先解析一條sql語句,看出現什麼內容 select識別符。這是select查詢序列號。查詢序號代表sql語句執行的順序,看下面這條sql explainselect from s...