自动调整在Excel中的worksheet_active()中不起作用

时间:2013-07-25 04:02:58

标签: 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
For Each ws In Me.Sheets
ws.Cells.WrapText = True
ws.Cells.EntireRow.AutoFit
Next ws
End Sub 

工作簿开放部分有效,但workheet_activate部分没有。我在工作簿中有很少的工作表,而工作表中的几个字段依赖于另一个工作表。在我进行更改以使字段变长之后,另一个工作表结果无法赶上长度并隐藏在框中的下方。我必须重新启动excel才能让工作簿开始工作,所有隐藏的单词都会再次出现。

1 个答案:

答案 0 :(得分:1)

您需要在每个表单的代码模块中使用Private Sub Worksheet_Activate()。此外,每个工作表中的代码必须是:

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

在该上下文中,Me指的是Worksheet对象,而不是Workbook对象。