🛠️ 終極解決方案:使用 VBA 巨集(一鍵完美修正)
這個方法完全不需要手動調,它會自動把第 10 列以下有字的地方「自動撐開 + 補上安全距離」,確保預覽和印出來絕對不會切到字。
1. 在 Excel 畫面中,按下鍵盤上的 Alt + F11(會打開一個白色視窗)。
2. 點擊上方選單的【插入】➔【模組】。
3. 把下面這段vba 程式碼複製並貼上到右邊的空白大框框中:
Sub 強制換行緩衝版()
Dim ShellApp As Object
Dim FolderPath As String
Dim FileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Long, lastRow As Long, colNum As Long
Dim currentLastRow As Long
Dim cell As Range
Dim targetRange As Range
' 讓使用者彈出視窗選擇那檔案所在的資料夾
Set ShellApp = CreateObject("Shell.Application").BrowseForFolder(0, "請選擇存放 Excel 的資料夾", 0)
If ShellApp Is Nothing Then Exit Sub
FolderPath = ShellApp.Self.Path & "\"
' 關閉畫面更新與警告視窗,提升執行速度
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' 尋找資料夾內的所有 Excel 檔案
FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> ""
' 打開檔案
Set wb = Workbooks.Open(FolderPath & FileName)
' 對該檔案中的每一個工作表(分頁)進行處理
For Each ws In wb.Worksheets
' ?? 核心修正 1:同時檢查 A 欄到 Z 欄(第 1 到第 26 欄),找出真正最底下的那一行
lastRow = 0
For colNum = 1 To 26 ' 1代表A欄,26代表Z欄
currentLastRow = ws.Cells(ws.Rows.Count, colNum).End(xlUp).Row
If currentLastRow > lastRow Then
lastRow = currentLastRow
End If
Next colNum
' 如果有資料,且最後一行大於或等於第 10 列才處理
If lastRow >= 10 Then
' ?? 核心修正 2:將檢查範圍擴大到第 10 列到最後一列的 A 欄到 Z 欄
Set targetRange = ws.Range(ws.Cells(10, "A"), ws.Cells(lastRow, "Z"))
' 檢查 A 到 Z 欄的每個儲存格,並在末尾補上一個換行 (Chr(10))
For Each cell In targetRange
If Not IsError(cell.Value) Then
' 確保儲存格不是空的,且不是公式
If cell.Value <> "" And Not cell.HasFormula Then
' 如果文字的最後一個字還不是換行符號,就加上去
If Right(cell.Value, 1) <> Chr(10) Then
cell.Value = cell.Value & Chr(10)
End If
End If
End If
Next cell
' 補完換行後,讓 Excel 自動啟用「自動換行」並調整列高
For i = 10 To lastRow
If ws.Rows(i).EntireRow.Hidden = False Then
ws.Rows(i).Cells(1).EntireRow.WrapText = True ' 確保開啟自動換行
ws.Rows(i).AutoFit ' 自動調整列高
ws.Rows(i).RowHeight = ws.Rows(i).RowHeight + 5 ' 補上 5 點列印緩衝
End If
Next i
End If
Next ws
' 儲存並關閉檔案
wb.Close SaveChanges:=True
' 繼續搜尋下一個檔案
FileName = Dir()
Loop
' 重新開啟畫面更新
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "大功告成!資料檔案的 A 到 Z 欄已全面補上換行緩衝並自動補上 5 點列印緩衝調整完畢!", vbInformation, "完成通知"
End Sub
訂閱:
張貼留言 (Atom)
可以一次處理EXCEL的列高讓它不遮字
🛠️ 終極解決方案:使用 VBA 巨集(一鍵完美修正) 這個方法完全不需要手動調,它會自動把第 10 列以下有字的地方「自動撐開 + 補上安全距離」,確保預覽和印出來絕對不會切到字。 1. 在 Excel 畫面中,按下鍵盤上的 Alt + F11(會打開一個白色視窗)。 2...
-
我: 什麼是說話的 語氣 ? (開心? 生氣? 無奈? 興奮? ) 什麼是用了哪些 有趣的詞語或句子 ? 有沒有你沒聽過的說法? 什麼是為什麼他們要這樣說? 背後可能有什麼 想法或感覺 ? ___________________...
-
時間,從來不曾停止前進,留下的只是人的思念。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 這隻音樂搖頭貓頭鷹是妹妹的,是在我考大學的時候,媽媽特地從台北的今日百貨買回來送給妹妹的,當作妹妹顧家的禮物。而今,一瞬間,貓頭鷹也已經13歲了,好快。 只要幫她...
-
我: 「你是一個文字學家及訓詁學家,請問交代跟交待這兩個詞的差別在哪?」 === 整合"ChatGPT對話"的文句:「 「交代」一般指說明事情的來龍去脈,尤其是需要向上級或長輩匯報、報告時,用「交代」比較適合。 例如: 我得向主管交...
-
我: 在寫創作文字 ( 故事、小說、戲劇 ) 情境中,同一時間,如何決定誰的言行舉止,是依據作者的直覺嗎?是依據故事的大綱嗎?是依據書中角色對正在發生的事情的關鍵程度嗎? __________________________________...
-
今天是星期天,早上睡到6點半就被妹妹的手機吵醒了,本來想說,今天終於可以睡到自然醒的說。 早上,繼續奮鬥看超級電腦的小說,雖然很想去玩遊戲,但是小說的魅力還是大於遊戲啊。 中午,去四姨婆家吃飯,原因是因為,昨天耀南哥榮獲了模範廚師,整一個縣市只有選出一名的榮譽,昨天他家應該很熱鬧...
沒有留言:
張貼留言