【发布时间】:2017-05-12 07:07:30
【问题描述】:
工作环境:Excel 2013
目标:通过过滤第2行中的内容删除不必要的列。
我的想法是,只要第 2 行的内容是
-
Physical Location或 -
PLC Tag Name或 -
Test Step1/2/3/4/5/6/7,
保留这些列,否则将其删除。
我的问题是我需要多次运行这个宏来删除所有不必要的列。它应该从 1 循环到 40,然后只留下我想要的列。我不确定为什么它不起作用。 谁能帮我?谢谢!
我的代码:
Sub Reorder()
Rows(1).Insert shift:=xlShiftDown
For i = 1 To 40
WY = Worksheets("Sheet4").Cells(2, i)
Select Case WY
Case "Physical Location"
Worksheets("Sheet4").Cells(1, i) = 1
Case "PLC Tag Name"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step1"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step2"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step3"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step4"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step5"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step6"
Worksheets("Sheet4").Cells(1, i) = 1
Case "Test Step7"
Worksheets("Sheet4").Cells(1, i) = 1
Case Else
Worksheets("Sheet4").Cells(1, i) = 0
End Select
Next i
For i = 1 To 40
If Worksheets("Sheet4").Cells(1, i) = 0 Then
Columns(i).EntireColumn.Delete
End If
Next
End Sub
【问题讨论】:
-
从 40 循环到 1。