如何在VBA中查找和选择最后一列?

如何在VBA中查找和选择最后一列?,vba,excel,Vba,Excel,我正在尝试创建一个excel宏,它查找工作表的最后一列,然后选择整个列。但是,此列始终会有所不同-有些日子它将是“H”列,其他日子将是“GX”列,因为工作表中的数据会不断更新。到目前为止,我已经了解了如何找到最后一列,然后将其删除,但一旦宏再次运行,它会特别引用该列。我需要它总是指最后一列,不管是哪一列。谢谢 这是代码。我是VBA等的新手,这是通过宏录制器和我在网上找到的其他东西创建的,所以请容忍我 `Sub Macro11() Sheets("Sheet25").Cells(1, 1).Act

我正在尝试创建一个excel宏,它查找工作表的最后一列,然后选择整个列。但是,此列始终会有所不同-有些日子它将是“H”列,其他日子将是“GX”列,因为工作表中的数据会不断更新。到目前为止,我已经了解了如何找到最后一列,然后将其删除,但一旦宏再次运行,它会特别引用该列。我需要它总是指最后一列,不管是哪一列。谢谢

这是代码。我是VBA等的新手,这是通过宏录制器和我在网上找到的其他东西创建的,所以请容忍我

`Sub Macro11()
Sheets("Sheet25").Cells(1, 1).Activate
ActiveCell.SpecialCells(xlLastCell).Select
lastCol = ActiveCell.Column
Columns("W:W").Select
Selection.Delete Shift:=xlToLeft
End Sub`

下面是示例代码
避免在代码中使用选择/激活。想知道为什么要提到这个


下面是示例代码
避免在代码中使用选择/激活。想知道为什么要提到这个


网上有很多例子供你发帖。你能分享你试过的代码吗?是的。我是VBA等的新手,所以我使用了我看到的其他帖子,其中混合了excel中记录宏功能的代码。所以请容忍我。Sub Macro11()'Sheets(“Sheet25”).单元格(1,1).激活ActiveCell.SpecialCells(xlLastCell).选择lastCol=ActiveCell.Column Columns(“W:W”).选择Selection.删除Shift:=xlToLeft End Sub
lastCol=Cells(i,Columns.Count).结束(xlToLeft).Column,其中i是行
。这不是指仅查找某一行中的最后一列吗?我希望它能够选择整个工作表中的整个列,而不仅仅是告诉我某一行中有多少列。有什么想法吗?网上有大量的例子供你发帖。你能分享你试过的代码吗?是的。我是VBA等的新手,所以我使用了我看到的其他帖子,其中混合了excel中记录宏功能的代码。所以请容忍我。Sub Macro11()'Sheets(“Sheet25”).单元格(1,1).激活ActiveCell.SpecialCells(xlLastCell).选择lastCol=ActiveCell.Column Columns(“W:W”).选择Selection.删除Shift:=xlToLeft End Sub
lastCol=Cells(i,Columns.Count).结束(xlToLeft).Column,其中i是行
。这不是指仅查找某一行中的最后一列吗?我希望它能够选择整个工作表中的整个列,而不仅仅是告诉我某一行中有多少列。有什么想法吗?可能是完美的复制品,谢谢!如果我想做类似的事情-(查找一个不断变化的列并将其删除),但不是让它查找并删除最后一列,而是让它使用“查找”(如ctrl+f)功能在电子表格中查找一个单词,然后选择该列,这会相似吗?这是我尚未解决的另一个问题。谢谢!如果我想做类似的事情-(查找一个不断变化的列并将其删除),但不是让它查找并删除最后一列,而是让它使用“查找”(如ctrl+f)功能在电子表格中查找一个单词,然后选择该列,这会相似吗?这是我还没有解决的另一个问题哈哈
Sub Macro11()
    Dim LastCol As Long

    With ThisWorkbook.Sheets("Sheet25")
        LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        .Columns(LastCol).Delete
    End With

End Sub