【发布时间】: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 另外,以前的代码不会发生这种情况。