Views: 0
🚀 SmartHeight Pro:讓 Excel/Calc 表格排版瞬間整齊
一鍵批次微調,告別高矮不一的混亂報表!
還在手動拉動每一列的高度嗎?當表格內容過多,導致自動換行後的列高顯得雜亂無章時,此範例程式是您的最佳救星。這款專為 LibreOffice/OpenOffice 打造的智慧腳本,能精準鎖定範圍,自動將列高優化至最完美的視覺比例。
✨ 核心亮點
- ⚡ 智慧自動進位:程式會自動偵測現有高度並執行「百位數進位」邏輯,確保每一列都能獲得充足的顯示空間,視覺效果更趨統一。
- 🛡️ 專業保底高度:內建 0.8cm (800 twips) 最低高度限制,防止列高縮過頭,確保報表文字在列印或閱讀時永不被遮蓋。
- 📍 視覺化精準定位:獨家「跳轉追蹤」功能!在輸入起始與結束列號時,畫面會自動滾動至目標位置,讓你邊看邊設,絕不出錯。
- 🔄 記憶常用參數:具備智慧記憶功能,自動帶入上次設定的列號範圍,重複作業僅需連按 Enter 即可完成。
- ✅ 視覺回饋提示:執行成功後按鈕將閃爍綠燈,給予最直覺的操作確認,不再疑惑程式是否有在跑。
🛠️ 強大功能
- 批次處理:支援自定義任意範圍,無論是 10 列還是 1000 列,瞬間處理完畢。
- 跳轉輔助:在設定過程中自動導航,解決長表格翻找列號的痛苦。
- 零侵入性:只針對有高度的顯示列進行優化,自動避開已隱藏的列位。
- 簡易整合:輕鬆掛載於現有工具列或按鈕,隨開隨用。
💻 程式源碼 (Basic)
請將以下代碼複製並貼上至您的 LibreOffice/OpenOffice 巨集編輯器中:
Global g_sLastStart As String
Global g_sLastEnd As String
Sub AdjustHeightByInput
Dim oDoc As Object
Dim oSheet As Object
Dim oForm As Object
Dim oButton As Object
Dim sStart As String, sEnd As String
Dim nStart As Long, nEnd As Long
Dim i As Long
Dim currH As Long, newH As Long
oDoc = ThisComponent
oSheet = oDoc.CurrentController.ActiveSheet
oForm = oSheet.DrawPage.Forms.getByIndex(0)
oButton = oForm.getByName("CommandButton 1")
If g_sLastStart = "" Then g_sLastStart = "11"
JumpToRow(oDoc, oSheet, CLng(g_sLastStart))
sStart = InputBox("起始列號:", "設定範圍 (1/2)", g_sLastStart)
If sStart = "" Then Exit Sub
g_sLastStart = sStart
If g_sLastEnd = "" Then g_sLastEnd = "19"
JumpToRow(oDoc, oSheet, CLng(g_sLastEnd))
sEnd = InputBox("結束列號:", "設定範圍 (2/2)", g_sLastEnd)
If sEnd = "" Then Exit Sub
g_sLastEnd = sEnd
nStart = CLng(sStart) - 1
nEnd = CLng(sEnd) - 1
For i = nStart To nEnd
currH = oSheet.Rows.getByIndex(i).Height
If currH > 0 Then
If (currH Mod 100 <> 0) Then
newH = (Int(currH / 100) + 1) * 100
Else
newH = currH
End If
If newH < 800 Then newH = 800
oSheet.Rows.getByIndex(i).Height = newH
End If
Next i
oButton.BackgroundColor = RGB(144, 238, 144)
Wait 800
oButton.BackgroundColor = RGB(240, 240, 240)
End Sub
Sub JumpToRow(oDoc, oSheet, nRow)
Dim oCell As Object
On Error Resume Next
oCell = oSheet.getCellByPosition(0, nRow - 1)
oDoc.CurrentController.select(oCell)
End Sub
💡 適用場景
- 財務報表:確保所有數據列高度一致,視覺更專業。
- 產品清單:自動調整因說明文字長度不一造成的排版混亂。
- 列印前校對:統一高度標準,避免列印出來高低落差過大。
🎯 想提升您的工作效率嗎?立即將此巨集導入您的 Calc 環境!
