我正在尝试运行此代码段,以将从第一个列到最后一个列的列宽设置为4。
我收到错误消息:应用程序定义或对象定义的错误
Dim firstRow, firstCol As Integer
Dim lastRow, lastCol As Integer
Dim row, column As Integer
firstRow = start.row
firstCol = start.column
lastRow = iMax
lastCol = jMax
'Set column width to 4
Sheets("Tree").Columns(Cells(firstRow, firstCol).EntireColumn, Cells(firstRow, lastCol - 1).EntireColumn).ColumnWidth = 4
其中jMax和iMax是2个整数。有什么帮助吗?谢谢!
答案 0 :(得分:1)
Worksheet.Columns
以列字母或索引作为参数。
因此Sheets("Tree").Columns("A:B").ColumnWidth = 4
或Sheets("Tree").Columns(2).ColumnWidth = 4
是正确语法的示例。但是您这里有Range
个参数。
如果将Columns
更改为Range
,并且所有变量都具有预期值,则最后一行应该起作用。
一些建议:
Integer
更改为Long
-Excel的行数超过Integer
不能处理,并且使用Integer
并没有真正的好处。Dim firstRow as Long, firstCol as Long
。对于Dim firstRow, firstCol as Long
,firstRow
实际上是Variant
Range
已经具有Row
和Column
属性,因此最好避免将这些术语用作变量。