【发布时间】:2014-07-21 16:49:52
【问题描述】:
在工作表中,我有一个工作表/列表,用户应在其中选择YES/NO,具体取决于要从哪个工作表保留/删除哪些列。
当用户选择 YES 时不会发生任何事情,因为列已经存在,但如果他选择 NO,则必须删除其他工作表的列。
直到现在我做了这段代码,但没有任何改变:
选项显式 选项基础 1 常量 TEMPLATE_SHE As String = "TemplateSHE"
Sub GenerateSHE()
Dim ws, wsh As Worksheet, Cel1 As Range
Dim Var1 As String
Dim Col_num As Integer
Dim Col_name As String
Dim MyRange As Range
Set ws = Worksheets(4)
For Each Cel1 In ws.UsedRange
If (Cel1.Value = "NO") Then
For Each wsh In ActiveWorkbook.Sheets
With wsh.Name <> TEMPLATE_SHE
Col_num = .Range("A1").End(xlToRight).Column
Set MyRange = .Range(.Cells(1, 1), .Cells(1, Col_num)).Cells.Find(Col_name)
If Left(MyRange, 3) = "LEW" Then
Columns("AY:BC").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 3) = "RMS" Then
Columns("AT:AX").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 3) = "AMS" Then
Columns("AR:AS").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 2) = "MM" Then
Columns("AM:AQ").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 2) = "QM" Then
Columns("AH:AL").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 3) = "TEM" Then
Columns("AC:AG").Delete Shift:=xlToLeft
ElseIf Left(MyRange, 3) = "LMM" Then
Columns("X:AB").Delete Shift:=xlToLeft
End If
End With
Next wsh
End If
Next
Set ws = Nothing
End Sub
有人可以帮我更正我的代码吗?
【问题讨论】:
-
NO按钮是否与子/宏正确链接? -
实际上它是一个 activeX 组合框而不是一个按钮.. Cel1.Value 真的不起作用吗?如何将其链接到宏?
-
你能发布你完整的子/宏吗?这样我就可以验证触发器是否正确。
-
有没有办法向您发送一个合适的 excel 文件示例,以便您了解我的请求?
-
我找到了解决方案,如果有人要寻找解决方案,请问我 :)
标签: vba excel excel-2007