繁体   English   中英

有没有一种方法可以根据列号从excel工作表中选择特定的列?

[英]Is there a way by which I can select particular columns from an excel sheet based on the column number?

我有一个具有数千列的excel工作表,我想选择其中的一些,每一个都有一个列号,有没有办法我可以选择满足特定条件的列? 例如编号为50、70、120、154、200的列。如何从具有2000列的Excel文件中选择它们? 有没有宏可以做到这一点? 谢谢

以@Wujaskun的答案为基础,您可以执行以下操作,该操作将允许您仅在一行中指定列号,而无需重复编码:

Sub select_columns()

Dim myColumns As Range

myColumnNumbers = Array(1, 5, 9, 13, 17) '.. and on and on..

ReDim myColumn(UBound(myColumnNumbers)) As Range

For Each c In myColumnNumbers

    If myColumns Is Nothing Then
        Set myColumns = Columns(c).EntireColumn
    Else
        Set myColumns = Union(myColumns, Columns(c).EntireColumn)
    End If

Next

myColumns.Select

Set myColumns = Nothing

End Sub

请稍作警告,请勿重复列号(或至少重复第一个列号),因为这将导致联盟重置。

编辑 -现在,我已经改进了代码,以允许(或至少不会引起问题)如果重复第一列号。

您可以使用union来选择多个列。 我创建了一个简短的宏,只是为了让您了解它的工作原理。

Sub select_columns()

Dim myColumns, myColumn(1 To 5) As Range

Set myColumn(1) = Columns(1).EntireColumn
Set myColumn(2) = Columns(3).EntireColumn
Set myColumn(3) = Columns(5).EntireColumn
Set myColumn(4) = Columns(7).EntireColumn
Set myColumn(5) = Columns(9).EntireColumn

Set myColumns = Union(myColumn(1), myColumn(2), myColumn(3), myColumn(4), myColumn(5))

myColumns.Select

End Sub

暂无
暂无

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

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