2017-07-27 79 views
1

我在这里有一个工作表,其中包含多列满数据,范围从单元AA到当前的CT。第一列包含标题行并被冻结。数据每周添加到此范围的最后一列。 &然后删除第一个和最后四个之间的所有列(以显示一个月的价值数据,但保持标题完整)。删除工作表中第一个和最后四个之间的所有列

我对VBA很新,我一直在试图编写一些代码来实现这一点,到目前为止,我已经设法从最后选择第五列。但我不能得到它选择列之间的第4列之间的结束和单元格AA:

Sub DeleteColumns() 
    Dim i 
    i = Range("KFIData").End(xlToRight).Offset(0,-4).EntireColumn.Select 
    Columns("AA:ColumnFive").Delete 
End Sub 

我是否完全错误的方式?

非常感谢

+0

您确定要删除**栏**吗?或者你只想删除列的**内容**? – Noceo

回答

1

那么,如果你设法从到底抓5列,使用以下语句:

Range(Columns("AA"), Columns(ColumnFiveFromEnd)).Delete 

ColumnFiveFromEnd可以是数字以及文字标识。

+0

我认为这会提高可读性,如果你是一致的关于通过字母(s)编号的列。否则,它看起来像一个很好,简单的代码行。 – Noceo

+0

@Noceo我很感谢你对可读性的关注。然而在这种情况下,“AA”更具可读性,因为它与规范直接相关。最后一列是一个数字变量,它很难(尽管可行)将其转换为文本。 –

+0

我同意这是一个小问题。尽管你的编辑更容易理解。如果他不是新来的VBA,我可能根本就没有解决它:-) – Noceo

相关问题