excel vba实例005 如何设置列宽行高和其默认值
1、 首先不必说,打开excel按Alt+F11打开VBE(Visual Basic Edit)编辑器,双击VBE窗口左侧的“sheets(sheet1)”,然后在右侧写入代码。

2、 先说这一种,分别设置列宽行高的数值(直接操作的做法是在列头或者行头右键来修改列宽或行高的值),而vba的代码如下(附上释义):
Sub 设置列宽行高()
With ActiveWindow.RangeSelection '对活动工资表被选中的单元格赋属性
.ColumnWidth = 12 '列宽以字符为单位
.RowHeight = 72 '行高以磅为单位
End With
End Sub
运行之后可以看到,被选中的单元格的列宽行高发生了变化。

3、 这是单个单元格设置的做法,如果要整张工作表呢,只需加上一句cells.selection。代码改为:
Sub 设置列宽行高()
Cells.Select '加在这个位置
With ActiveWindow.RangeSelection
.ColumnWidth = 12
.RowHeight = 72
End With
End Sub
运行之后可以看到整张工作表的列宽行高都发生了变化。

4、 接下来是介绍下如何将列宽行高设置成自动填充的列宽行高(直接操作的做法是在两列头或两行头之间双击鼠标左键),它会随着你输入的内容自动进行修改列宽和行高。看代码:
Sub 设置自动填充列宽行高()
With ActiveWindow.RangeSelection
.Columns.AutoFit
.Rows.AutoFit
End With
End Sub
运行之后可以看到选中的单元格的列宽行高变成了自动填充的了。

5、 同样,如果需要全表格呢,不多说,上代码:
Sub 设置自动填充列宽行高()
Cells.Select '无外乎添加个全选单元格而已
With ActiveWindow.RangeSelection
.Columns.AutoFit
.Rows.AutoFit
End With
End Sub
运行之后可以看到整个表格的列宽和行高都修改成了自动填充。

6、 那么要修改成默认的列宽行高呢,这里说的默认是软件刚打开时的列宽和行高(直接操作的话需要知道原先的列宽和行高的值,在列头或行头右键修改即可),需要特别说明一下,StandardWidth和StandardHeight虽然在手册里说返回列或行的默认值,但是一旦你修改过整张工资表的列宽或行高后,这个默认值也就随之改变,所以要变为软件打开时的默认值还需要特别处理一下。
我的想法是先新建一个工资表,获取他的默认值,然后再赋予需要的工资表单元格或整张工作表,然后再将新建的工作表删除。代码如下:
Sub 设置默认列宽行高()
Dim myRange As Range
Set myRange = ActiveWindow.RangeSelection
Sheets.Add.Name = "newsheet"
myRange.ColumnWidth = Sheets("newsheet").StandardWidth
myRange.RowHeight = Sheets("newsheet").StandardHeight
Application.DisplayAlerts = False
Sheets("newsheet").Delete
Application.DisplayAlerts = True
End Sub
运行之后可以看到,选中的单元格列宽和行高恢复成刚新建工作表时的默认值了。

7、 同上两种一样,如果需要对整张工作表进行列宽和行高的设置,只需要加入Cells.Select这句。代码如下:
Sub 设置默认列宽行高()
Dim myRange As Range
Cells.Select
Set myRange = ActiveWindow.RangeSelection
Sheets.Add.Name = "newsheet"
myRange.ColumnWidth = Sheets("newsheet").StandardWidth
myRange.RowHeight = Sheets("newsheet").StandardHeight
Application.DisplayAlerts = False
Sheets("newsheet").Delete
Application.DisplayAlerts = True
End Sub
运行之后可以看到整张工资表的列宽和行高都恢复成了刚新建工作表时的默认值了。
