Excel VBA宏忽略列宽命令

Excel VBA宏忽略列宽命令,excel,Excel,全部 当我编写以下excel VBA代码时,宏将列宽10.86应用于整个工作表,并忽略与列(A、B、C)相关的术语。有人能帮忙吗?提前谢谢 Columns("A:A").Select Selection.ColumnWidth = 17.86 Columns("B:C").Select Selection.ColumnWidth = 19.86 Columns("D:I").Select Selection.ColumnWidth = 10.86 除非有其他代码更改选择,否则不应发生这种情

全部 当我编写以下excel VBA代码时,宏将列宽10.86应用于整个工作表,并忽略与列(A、B、C)相关的术语。有人能帮忙吗?提前谢谢

Columns("A:A").Select
Selection.ColumnWidth = 17.86

Columns("B:C").Select
Selection.ColumnWidth = 19.86

Columns("D:I").Select
Selection.ColumnWidth = 10.86

除非有其他代码更改选择,否则不应发生这种情况
请尝试此代码,它将设置活动工作表中的宽度

Dim ws As Worksheet 
Set ws = ActiveSheet
With ws
    .Columns("A:A").ColumnWidth = 17.86
    .Columns("B:C").ColumnWidth = 19.86
    .Columns("D:I").ColumnWidth = 10.86
End With

如果去掉Select语句,它将正常工作。下面的链接是关于在VBA中避免Select语句的一个很好的讨论


我不能复制这个。床单上是什么?请注意,您不需要
选择
列(“A:A”)。ColumnWidth=17.86
,等等。正如Ben所说,这可能是一个选择问题,直接引用可能会解决它。还要查看是否没有任何工作表更改事件同时运行,这可能会影响您的选择。
Columns("A:A").ColumnWidth = 17.86

Columns("B:C").ColumnWidth = 19.86

Columns("D:I").ColumnWidth = 10.86