简体   繁体   English

如何删除范围Excel VBA的列

[英]How to delete columns of a range Excel VBA

I have a range named "Start" located at cell "I21". 我有一个名为“Start”的范围位于单元格“I21”。 And I have another range named "End" located at cell "Q21". 我还有另一个名为“End”的范围位于单元格“Q21”。 I want to write a code to delete all the columns between them. 我想编写一个代码来删除它们之间的所有列。 In other words, I want to delete columns J,K,L,M,N,O,P completely. 换句话说,我想完全删除J,K,L,M,N,O,P列。 Here is the code I have: 这是我的代码:

with ThisWorkbook.sheets("Sheet1")
    'unprotect sheet
    .Columns(.Range("Start").Column+1 & ":" & .Range("End").Column-1).Select
     Selection.Delete Shift:xlLeft
End with 

when it comes to the first line .Columns... it gives me an error as undefined application. 当谈到第一行.Columns ...它给我一个错误,因为未定义的应用程序。 please help, 请帮忙,

Range(Range("start").Offset(,1), Range("end").Offset(,-1)).EntireColumn.Delete  

You don't have to specify a row reference... 您不必指定行引用...

ActiveSheet.Range(, MyColumn).EntireColumn.Delete

Where 'myColumn' is an arbitrary reference to a column number or anything you want. 其中'myColumn'是对列号或任何您想要的任意引用。

    Dim xlsRange As Excel.Range

    xlsRange = xlsSheet.Range("i2", "i10")

    xlsRange.EntireColumn.Delete()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM