我通常會盡量避免在Excel中使用VBA,但可以方便地將文本輸入到單元格中,並使其列變得更寬或更窄以容納在輸入或刪除時剩餘的文本。如何在文本輸入期間在Excel中自動調整列寬
這當然會受到列中其他單元格中文本長度的影響。 「你自動適合你輸入」,我猜你可能會這樣稱呼它。
有沒有一種簡單的方法在合適的處理程序中執行此操作?
我通常會盡量避免在Excel中使用VBA,但可以方便地將文本輸入到單元格中,並使其列變得更寬或更窄以容納在輸入或刪除時剩餘的文本。如何在文本輸入期間在Excel中自動調整列寬
這當然會受到列中其他單元格中文本長度的影響。 「你自動適合你輸入」,我猜你可能會這樣稱呼它。
有沒有一種簡單的方法在合適的處理程序中執行此操作?
我不確定在打字時是否有辦法做到這一點。我認爲excel通常會拉伸單元格視圖以在觸發worksheet_change事件之前顯示所有文本。
此代碼將在您更改並將目標移至新範圍後調整列的大小。將其放置在工作表模塊中。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextTarget As Range
Set nextTarget = Range(Selection.Address) 'store the next range the user selects
Target.Columns.Select 'autofit requires columns to be selected
Target.Columns.AutoFit
nextTarget.Select
End Sub
如果你只是希望做一個特定的列,您需要檢查目標列是這樣的:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextTarget As Range
Set nextTarget = Range(Selection.Address) 'store the next range the user selects
If Target.Column = 1 Then
Target.Columns.Select 'autofit requires columns to be selected
Target.Columns.AutoFit
nextTarget.Select
End If
End Sub
我不能想辦法做你要求什麼,但東西非常接近你的需求。 在現代版本的Excel(2010+,我不知道2007版本)中,您可以使用以下宏調整列的大小,以便在完成在單元格中輸入數據後立即適合數據。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Columns.AutoFit
End Sub
把宏的ThisWorkbook模塊
這將自動適應列寬
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Columns.AutoFit
End Sub
我只是想在一張紙上先前的兩個答案,他們沒有做任何事情,IDK的如果「ByVal Sh」是問題?這是一個錯字嗎?
總之,這裏是我的回答,檢查它和它的作品:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target Is Nothing Then
Exit Sub
Else
With Target
.Columns.Select
.Columns.AutoFit
End With
End If
End Sub
-.Reverus。
srry,沒有真正意識到** OLD **這篇文章是怎麼回事!大聲笑 – Reverus 2017-12-09 21:34:23
您不能自動填寫*作爲*鍵入,但只要完成鍵入並退出單元格,就可以自動創建。 – 2011-08-26 07:31:49