Excel讀取某一列的宏代碼VBA代碼源碼及解說(詳盡版)
阿新 • • 發佈:2017-08-17
vba 宏 excel 批量操作
背景
業務需要依據詳細設計文檔編寫所有對應的頁面
問題
工作量大,11張大表(幾十上百字段)時間緊 3天完成
核心
有完整的表設計,可通過excel手動編輯完成。
新問題
普通字段沒問題,可增加了字典後工作量驟然提升,這種特殊性讓工作的難度和體量都給手工操作Excel帶來了挑戰
解決方案
通過代碼實現手工操作excel的工作,也就是編寫VBA宏
Sub detailPage() ‘ ‘ 沫沫金 ‘ 生成居民健康檔案瀏覽器頁面,時間: 2017/08/17 ‘ Dim tri As Integer, td, tableName, nameC, valC, dicC, saveC As String ‘ ‘配置區域:Config ‘ ‘三列一行控制器記錄儀 tri = 1 ‘表名列 tableName = LCase(Cells(1, "D")) ‘label列 nameC = "A" ‘值列 valC = "B" ‘字典列 dicC = "C" ‘存儲列 saveC = "F" For n = 1 To [A65536].End(xlUp).Row ‘初始行內容 td = "" ‘三列一行 If tri = 1 Then td = "<tr>" ‘字段說明 td = td + "<td width=‘‘33%‘‘><h3><i class=‘‘ico ico_23‘‘></i>" + Cells(n, nameC) ‘字典字段特殊處理 If Cells(n, dicC) = "" Then td = td + "</h3><p>${sessionScope.data." + tableName + "[index]." + LCase(Cells(n, valC)) + "}</p></td>" Else td = td + "</h3><p><dic:dic type=""" + Cells(n, dicC) + """ value=""${sessionScope.data." + tableName + "[index]." + LCase(Cells(n, valC)) + "}"" /></p></td>" End If ‘三列一行結束處理 If tri = 3 Then td = td + "</tr>" ‘拼接一行,扔到空閑列統一拷貝 Cells(n, saveC) = td ‘當前列記錄 tri = tri + 1 ‘三列一行控制器 If tri > 3 Then tri = 1 Next n MsgBox "恭喜你,詳細信息生成成功。" ‘ End Sub
啟用宏,拷貝到代碼區運行即可看到拼接結果。完全自定義拼接格式,百分百解放雙手的工具。
下面,給java開發同伴重點說明下
if判斷 條件不用圓括號
條件判斷等於一個等號
格式排版必須控制好
沒有分號
以上,運行說明,在當前的sheet頁Alt+F8運行上面的宏。生成完成會收到友情提醒,好了,愉快的VBA結束。
by.沫沫金
於2017-08-17 西安
Excel讀取某一列的宏代碼VBA代碼源碼及解說(詳盡版)