首页 > 解决方案 > 删除其他列

问题描述

我经常处理 55-100 列、2k-100k 行的大型电子表格。我很少需要这些列中的几个。

不久前,我创建了以下代码来删除我的静态报告中不需要的列:

Sub quickFormat()

Dim currentColumn As Integer
Dim columnHeading As String

For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
    
    'Store Current Column Heading as variable
    
    columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value
    
    'Keep Columns with these Values
    
    Select Case columnHeading
    Case "Heading 1", "Heading 2"
        
    'Delete other Columns
    Case Else
    ActiveSheet.Columns(currentColumn).Delete
    
    End Select
    
    Next

End Sub

我现在发现自己正在查看不同的报告,我可能需要更改标题但仍然只需要几列。简而言之,对标头进行硬编码不再有效。

从 PowerQuery 的“选择其他列”功能中汲取灵感。

我试图创建一个带有 2 个列表框的用户表单。这个想法是:

从标题填充 ListBox1 允许用户选择列并移动到 ListBox2 用户按下确定

上述代码中使用了列表框 2 中的项目。但是,我想不出一种将 ListBox2 中的项目用作 Case 语句中的条件的方法。

我将非常感谢这里有创造性解决方案的任何人。我花了无数个小时来筛选这些电子表格中的噪音。

标签: excelvba

解决方案


推荐阅读