有人可以对以下问题发表评论吗? 我有一个子组件,它使用“自动调整”将列宽调整为文本宽度,但 J 列除外,它的固定宽度应为 80。但是,我发现子组件有两个问题:
我决定暂时关闭低音炮,因为这并不重要。但是,我很好奇是否有机会让它正常工作。
谢谢!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Dim col As Long
Dim maxCol As Long
' Set worksheet
Set ws = Me
' Determine maximum number of columns
maxCol = ws.Cells(1, ws.Columns.count).End(xlToLeft).Column
' Adjust column width
For col = 1 To maxCol
If col <> 10 Then ' 10 entspricht der Spalte J
' Adjust width of current column
ws.Columns(col).AutoFit
Else
' Set width of column J to 80
ws.Columns(10).ColumnWidth = 80
End If
Next col
End Sub
阅读以下文章,了解为什么运行 vba 代码后撤消功能不可用 Excel 撤消 vba
我也同意@Shrotter,你可能应该只在
WorkSheet_Change
事件上运行这个。你可以这样简化:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 10 Then
Target.ColumnWidth = 80
Else
Target.EntireColumn.AutoFit
End If
End Sub