use*_*125 2 excel vba excel-vba
我正在尝试在A2到AA2范围内执行AutoFit单元格.
以下是我正在尝试的代码:
Application.ScreenUpdating = False
Dim wkSt As String
Dim wkBk As Worksheet
wkSt = ActiveSheet.Name
For Each wkBk In ActiveWorkbook.Worksheets
On Error Resume Next
wkBk.Activate
Cells.Range("A2:AA2").EntireColumn.AutoFit
Next wkBk
Sheets(wkSt).Select
Application.ScreenUpdating = True
Run Code Online (Sandbox Code Playgroud)
下面是一些示例Excel数据,如屏幕上显示:
A B C
1 Jhon is the best employee
2 Emp_Name Emp_id Empsal.
Run Code Online (Sandbox Code Playgroud)
请注意,"Jhon是最好的员工"全部在一个单元格(A1)中,但在显示时,其内容重叠单元格B1和C1.
使用上面的代码,数据显示如下:
A B C
1 Jhon is the best employee
2 Emp_Name Emp_id Empsal
Run Code Online (Sandbox Code Playgroud)
如何在每个工作表的第二行的每个单元格上执行AutoFit?上面的代码无法从我的第二行自动调整数据.
这就是我希望显示器看起来像:
A B C
1 Jhon is the best employee
2 Emp_Name Emp_id Empsal.
Run Code Online (Sandbox Code Playgroud)
即列应该贴合"Emp_Name","Emp_id"和"Empsal". - 不是"Jhon是最好的员工".
编辑此外,如果以下行(3,4等)中有数据,则这些数据也应包含在自动调整中.例如,数据应如下所示:
A B C
1 Jhon is the best employee
2 Emp_Name Emp_id Empsal.
3 Jhon Peter 2 2000
Run Code Online (Sandbox Code Playgroud)
如果您想要的是强制Autofit忽略第一行,并且仅基于第2行和更高行的内容自动调整.我不认为这是可能的.一种方法是存储第一行的内容,删除它,自动调整并插入第一行的内容:
Public Sub test()
Dim wkSt As String
Dim wkBk As Worksheet
Dim temp As Variant
wkSt = ActiveSheet.Name
For Each wkBk In ActiveWorkbook.Worksheets
On Error Resume Next
wkBk.Activate
temp = wkBk.Rows(1)
wkBk.Rows(1).ClearContents
wkBk.Columns("A:AA").AutoFit
wkBk.Rows(1) = temp
Next wkBk
Sheets(wkSt).Select
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34894 次 |
| 最近记录: |