删除除

时间:2016-06-30 07:33:59

标签: excel vba

我正在尝试调整我发现的一些代码。我需要查看两行而不仅仅是一行。 我加了这个。但不知道如何完成此操作以将其包含在循环中。请有人帮忙。

Sub DeleteColumns()
    Dim currentColumn As Integer
    Dim columnHeading As String
    Dim columnHeading2 As String

    For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
        columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value

    'Check whether to preserve the column
        Select Case columnHeading
        'Insert name of columns to preserve
            Case "NET EFFECTIVE", "OUTGOINGS"
                'Do nothing
            Case Else

            Select Case columnHeading2
            Case "HKD/sq.ft", "USD/sq.m."

            Case Else

                'Delete the column
                ActiveSheet.Columns(currentColumn).Delete
            End Select
        Next
    End Sub

3 个答案:

答案 0 :(得分:1)

对您的代码采用不同的方法。这个对我有用

Sub DeleteColumns()
    Dim currentColumn As Integer
    Dim columnHeading As String        

    For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
        columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value

If columnHeading = "One" Or columnHeading = "Two" Then
    GoTo label
    Else
    ActiveSheet.Columns(currentColumn).Delete
End If
label:
Next
End Sub

只需将"One""Two"替换为所需的列名称即可。您可以扩展IF条件以满足您的需求

答案 1 :(得分:0)

谢谢你lokusking!

我改变了一点,它有效!!

Sub DeleteColumns()
    Dim currentColumn As Integer
    Dim columnHeading As String
    Dim columnHeading1 As String

    For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
        columnHeading = ActiveSheet.UsedRange.Cells(4, currentColumn).Value
        columnHeading1 = ActiveSheet.UsedRange.Cells(5, currentColumn).Value

If columnHeading1 = "HKD/sq.ft" Or columnHeading1 = "USD/sq.m." Or columnHeading = "Outgoings" Or columnHeading = "Net effective" Then
    GoTo label
    Else
    ActiveSheet.Columns(currentColumn).Delete
End If
label:
Next
End Sub

答案 2 :(得分:0)

您的工作代码可以简化如下:

$transitions.onEnter({}, ($transition$) => {
  //...
});