【问题标题】:Apply macro to any sheet将宏应用于任何工作表
【发布时间】:2022-07-12 19:45:59
【问题描述】:

我有有效的代码。每次运行时我都需要更改工作表名称。

我想将此宏应用于任何工作表,而不考虑工作表名称。

Sub DeleteColumns()

Dim ColAry, i As Long, fc As Long
Application.ScreenUpdating = False

ColAry = Array("TIENDA_ID", "QCT_NAME", "PRODUCTO_ID", "CATEGORIA", _
  "FACT_NAME", "FACT_VALUE", "PRECIO HISTORICO", "CORRECIÓN", _
  "W12", "W11", "W10", "W09", _
  "W08", "W07", "W06", "W05", _
  "W04", "W03", "W02", "W01", _
  "W52", "W50", "W13", "W14", _
  "W15", "W16", "CDAR ID", "QCT")

With Sheets("Sheet11")
    For i = LBound(ColAry) To UBound(ColAry)
        fc = 0
        On Error Resume Next
        fc = Application.Match(ColAry(i), .Rows(1), 0)
        On Error GoTo 0
        If fc > 0 Then
          .Columns(fc).Delete
        End If
    Next i
End With

Application.ScreenUpdating = True
End Sub

【问题讨论】:

  • @chrisneilsen 谢谢你的帮助。我有一个问题。当我进行更改并运行代码时,弹出窗口要求我创建一个宏。我将其命名并再次单击运行,但之后没有任何反应。列在那里。
  • @chrisneilsen 另外,以前的代码不会发生这种情况。

标签: excel vba


【解决方案1】:

删除指定标题的列

Option Explicit

Sub DeleteColumnsTEST()
    
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
    Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet11")
    
    DeleteColumns ws
    
End Sub

Sub DeleteColumns(ByVal ws As Worksheet)

    Dim ColAry As Variant: ColAry = Array( _
        "TIENDA_ID", "QCT_NAME", "PRODUCTO_ID", "CATEGORIA", _
        "FACT_NAME", "FACT_VALUE", "PRECIO HISTORICO", "CORRECIÓN", _
        "W12", "W11", "W10", "W09", _
        "W08", "W07", "W06", "W05", _
        "W04", "W03", "W02", "W01", _
        "W52", "W50", "W13", "W14", _
        "W15", "W16", "CDAR ID", "QCT")
    
    Application.ScreenUpdating = False
    
    Dim fc As Variant
    Dim i As Long
    
    With ws
        For i = LBound(ColAry) To UBound(ColAry)
            fc = Application.Match(ColAry(i), .Rows(1), 0)
            If IsNumeric(fc) Then .Columns(fc).Delete
        Next i
    End With
    
    Application.ScreenUpdating = True

End Sub

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多