Autofit不';t在Excel中的工作表_active()中工作

Autofit不';t在Excel中的工作表_active()中工作,excel,Excel,我有这些代码,使工作簿打开和切换工作表都是wraptext和autofit,使所有长数据成为多链接: Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In Me.Sheets ws.Cells.WrapText = True ws.Cells.EntireRow.AutoFit Next ws End Sub Private Sub Worksheet_Activate() Dim ws As Worksheet Fo

我有这些代码,使工作簿打开和切换工作表都是wraptext和autofit,使所有长数据成为多链接:

Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Me.Sheets
ws.Cells.WrapText = True
ws.Cells.EntireRow.AutoFit
Next ws
End Sub



Private Sub Worksheet_Activate()
Dim ws As Worksheet
For Each ws In Me.Sheets
ws.Cells.WrapText = True
ws.Cells.EntireRow.AutoFit
Next ws
End Sub 

工作簿“打开”部分可以工作,但工作表“激活”部分不能工作。我在工作簿中有几张工作表,并且一张工作表的几个字段依赖于另一张工作表。在我进行更改以使字段变长后,另一个工作表结果无法赶上长度并隐藏在框中。我必须重新启动excel,以使工作簿打开的部分正常工作,所有隐藏的单词将再次显示。

您需要在每张工作表的代码模块中设置
专用子工作表\u Activate()
。此外,每个工作表中的代码需要:

Private Sub Worksheet_Activate()
    Me.Cells.WrapText = True
    Me.Cells.EntireRow.AutoFit
End Sub

在这种情况下,Me指的是
工作表
对象,而不是
工作簿
对象。

我发现我只需要在每张工作表上使用您的代码,然后确定,不需要工作簿的Open()编码。