运行时错误 13/类型不匹配

运行时错误 13/类型不匹配

刚刚花了 2 个小时尝试让这个简单的代码工作。宏选择然后删除指定的列。然后将 ColumnWidth 设置为 Col T = 50。

Col T 是标识符其它列被删除并且剩余的列向左移动。

两个问题:

  1. 鉴于代码逐行执行,为宽度重新调整大小而指定的 Col T 实际上不应该是不同的列吗,即在删除列并将剩余列左移之后的新列字母?

  2. 我如何使用编辑器“视图窗口”(见下文)中的信息来调试此代码?

    Watch :Columns("A:G,I:I,K:S,U:Z") : <Out of context> : Variant/Empty : Del_sel_cols_set_col_width50.del_selected_cols_resizeColT_width50
    
    Watch :Columns("T").ColumnWidth = 50 : <Out of context> : Variant/Empty : Del_sel_cols_set_col_width50.del_selected_cols_resizeColT_width50
    

我的代码...

Sub del_selected_cols_resizeColT_width50()

    Columns("A:G,I:I,K:S,U:Z").Delete

    Columns("T").ColumnWidth = 50

End Sub

答案1

将列引用更改为范围引用并指定 EntireColumn。

是的,删除之后T列变成了C列。

'either resize column T here
Columns("T").ColumnWidth = 50

Range("A:G,I:I,K:S,U:Z").EntireColumn.Delete

'or resize the new column C (formerly T) here
Columns("C").ColumnWidth = 50

答案2

尝试:

Columns("U:Z").Delete
Columns("K:S").Delete
Columns("I").Delete
Columns("A:G").Delete
Columns("T").ColumnWidth = 50

相关内容