我有一个包含数千列的Excel工作表,我想选择其中一些,每个都有一个列号,是否可以选择符合特定条件的列?例如,具有数字50,70,120,154,200的列。如何从具有2000列的excel文件中选择它们?有没有宏可以做到这一点? 谢谢
答案 0 :(得分:1)
采用@ 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
一个轻微的警告,不要重复列号(或至少第一个),因为这会导致联盟重置。
编辑 - 如果重复第一个列号,我现在已经改进了代码以允许(或至少不会导致问题)。
答案 1 :(得分:0)
您可以使用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