【发布时间】:2016-03-29 19:40:09
【问题描述】:
在我的电子表格中,我需要在 Excel 中自动调整列宽。如果用户正在输入最长的单词,则该列应根据单词/整数自动增加。我不希望我的用户增加列的宽度。为此,我从Internet 获得了一个公式,这是一种使活动工作簿中所有工作表中的所有列在输入的数据超过当前列宽时自动调整的方法。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim actCol, curCol
actCol = Target.Column
If actCol > 52 Then
curCol = Chr(Int((actCol - 1) / 52) + 64) & _
Chr(Int((actCol - 27) / 26) + 64) & _
Chr(Int((actCol - 27) Mod 26) + 65)
ElseIf actCol > 26 Then
curCol = Chr(Int((actCol - 1) / 26) + 64) & _
Chr(Int((actCol - 1) Mod 26) + 65)
Else
curCol = Chr(actCol + 64)
End If
Columns(curCol & ":" & curCol).AutoFit
End Sub
打开工作簿后,按 ALT + F11(功能键 F11)
在左上象限的 Microsoft Excel VBA 项目对象中双击“本工作簿”。
将事件处理程序粘贴到右侧的白色编辑区域(在该区域内单击鼠标右键并“粘贴”)。
关闭 VBE(带白色“x”的红色按钮 --- 右上角)。
保存工作簿。
我使用了这个公式,它部分正确。但是,如果整数超过 4 个字符,当给定的输入显示为 #### 时,我仍然面临问题。如何解决这个问题?
截图:
注意:由于该文件包含一些机密信息,因此我无法在此处共享该文件。
【问题讨论】:
标签: excel excel-formula vba