gpt4 book ai didi

vba - 如何选择并删除每第三列

转载 作者:行者123 更新时间:2023-12-02 13:51:47 25 4
gpt4 key购买 nike

我有一组数据,其中每第三列都是相同的。我只想保留第一列,其他相同的必须删除。

起初我尝试了这段代码,但它删除了错误的列,因为在每个循环中其他列的位置都被改变了。

Sub DeleteMultipleColumns()
Dim i As Integer
Dim LastColumn As Long
Dim ws As Worksheet

Set ws = Sheets("Arkusz2")
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ws.Activate
For i = 4 To (LastColumn - 2)
ws.Columns(i).Select
Selection.Delete Shift:=xlToLeft
i = i + 3
Next i
End Sub

在此之后,我使用 Union 尝试了另一个。它也不起作用:

Sub DeleteMultipleColumns()
Dim i As Integer
Dim LastColumn As Long
Dim ws As Worksheet

Set ws = Sheets("Arkusz2")
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ws.Activate
For i = 4 To (LastColumn - 2)
Application.Union.Columns(i).Select
i = i + 3
Next i
Selection.Delete Shift:=xlToLeft
End Sub

那么该怎么做呢?

我的新想法是尝试使用数组。我还有其他选择吗?

这是我在您很好的回答后实现的代码(感谢:sam092、meohow、mattboy):

Sub DeleteMultipleColumns()
Dim i As Integer
Dim LastColumn As Long
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("Arkusz2")
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column - 2
For i = LastColumn To 4 Step -3
ws.Columns(i).Delete Shift:=xlToLeft
Next i
Application.ScreenUpdating = True
End Sub

最佳答案

反转方向。从右边开始删除。我想你知道如何修改你的代码

关于vba - 如何选择并删除每第三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com