Vba 在Excel中基于组合框(表单)隐藏列
我的一切都设置了不同的预测选项。我过去在另一份工作中做过这件事,我不知道自己哪里出了问题Vba 在Excel中基于组合框(表单)隐藏列,vba,excel,combobox,Vba,Excel,Combobox,我的一切都设置了不同的预测选项。我过去在另一份工作中做过这件事,我不知道自己哪里出了问题 Private Sub ComboBox1_Change() If ComboBox1.Value = "2 Weeks" Then Columns("J:L").Select Selection.EntireColumn.Hidden = False Columns("M:R").Select Selection.EntireColumn.Hidden
Private Sub ComboBox1_Change()
If ComboBox1.Value = "2 Weeks" Then
Columns("J:L").Select
Selection.EntireColumn.Hidden = False
Columns("M:R").Select
Selection.EntireColumn.Hidden = True
End If
If ComboBox1.Value = "6 Weeks" Then
Columns("M:O").Select
Selection.EntireColumn.Hidden = False
Columns("J:L").Select
Selection.EntireColumn.Hidden = True
Columns("P:R").Select
Selection.EntireColumn.Hidden = True
End If
If ComboBox1.Value = "12 Weeks" Then
Columns("P:R").Select
Selection.EntireColumn.Hidden = False
Columns("J:O").Select
Selection.EntireColumn.Hidden = True
End If
End Sub
看起来你的代码应该工作得很好。我重新编写了它,使其更加简洁,并且它工作得非常完美(使用Active-X控件)
看起来你的代码应该工作得很好。我重新编写了它,使其更加简洁,并且它工作得非常完美(使用Active-X控件) 在我包含的标题中,它是一个表单控件芬特鲁斯8分钟前 我之所以感到困惑,并在上面的评论中问您是使用表单控件还是ActiveX控件,是因为您的问题标题是“表单”,但代码是针对ActiveX的 对于表单控制,请将此代码粘贴到模块中
Option Explicit
Sub DropDown1_Change()
Dim DDown As Shape
Set DDown = ActiveSheet.Shapes(Application.Caller)
Select Case DDown.ControlFormat.List(DDown.ControlFormat.ListIndex)
Case "2 Weeks"
Columns("J:L").Hidden = False
Columns("M:R").Hidden = True
Case "6 Weeks"
Columns("J:L").Hidden = True
Columns("M:O").Hidden = False
Columns("P:R").Hidden = True
Case "12 Weeks"
Columns("J:O").Hidden = True
Columns("P:R").Hidden = False
End Select
End Sub
接下来右键单击表单组合框,并将上面的宏指定给它:)
在我包含的标题中,它是一个表单控件芬特鲁斯8分钟前
我之所以感到困惑,并在上面的评论中问您是使用表单控件还是ActiveX控件,是因为您的问题标题是“表单”,但代码是针对ActiveX的
对于表单控制,请将此代码粘贴到模块中
Option Explicit
Sub DropDown1_Change()
Dim DDown As Shape
Set DDown = ActiveSheet.Shapes(Application.Caller)
Select Case DDown.ControlFormat.List(DDown.ControlFormat.ListIndex)
Case "2 Weeks"
Columns("J:L").Hidden = False
Columns("M:R").Hidden = True
Case "6 Weeks"
Columns("J:L").Hidden = True
Columns("M:O").Hidden = False
Columns("P:R").Hidden = True
Case "12 Weeks"
Columns("J:O").Hidden = True
Columns("P:R").Hidden = False
End Select
End Sub
接下来,右键单击表单组合框并将上面的宏指定给它:)以后,发布实际代码,而不是图片。很多人会自己将代码复制粘贴到excel中进行测试,在这里他们必须重新键入。你需要说明它做错了什么。我有点困惑。您使用的是表单控件还是ActiveX控件?对不起,我以为我在帮助别人,但仍然不习惯协议。它什么也没做。在我包含的标题中,它是一个表单控件。但代码看起来像是用于ActiveX控件的。:)为了将来,发布实际代码,而不是图片。很多人会自己将代码复制粘贴到excel中进行测试,在这里他们必须重新键入。你需要说明它做错了什么。我有点困惑。您使用的是表单控件还是ActiveX控件?对不起,我以为我在帮助别人,但仍然不习惯协议。它什么也没做。在我包含的标题中,它是一个表单控件。但代码看起来像是用于ActiveX控件的。:)看起来不错。由于某种原因,我的床单什么也做不了。我已将其保存到prper表中。可能是我把它当作ActiveX而不是表单来处理多亏了悉达思。@phentrus,这可能是真的。您确定已关闭设计模式吗?代码正常工作。因为代码隐藏了整个列,所以看起来好像什么都没发生。。。但是它隐藏了所需的列。@SiddharthRout,是的,我本来打算添加更多,但你给出了一个很好的答案,所以我将对此进行投票。噢,刚才看到了你的评论。我已经添加了一个答案。。。对不起,看起来不错。由于某种原因,我的床单什么也做不了。我已将其保存到prper表中。可能是我把它当作ActiveX而不是表单来处理多亏了悉达思。@phentrus,这可能是真的。您确定已关闭设计模式吗?代码正常工作。因为代码隐藏了整个列,所以看起来好像什么都没发生。。。但是它隐藏了所需的列。@SiddharthRout,是的,我本来打算添加更多,但你给出了一个很好的答案,所以我将对此进行投票。噢,刚才看到了你的评论。我已经添加了一个答案。。。对不起。你是说“隐藏”而不是“隐藏”吗?@LanceRoberts:哈哈,我确实这么做了,这一定是我的错。当我尝试分配宏时,列表现在是空的。@phentrus:你是否将代码粘贴到模块中(不在工作表代码区域中)你的意思是“隐藏”而不是“隐藏”?@LanceRoberts:LOL我当然这么做了这一定是我的责任。当我尝试分配宏时,列表现在是空的。@phentrus:您是否将代码粘贴到模块中(而不是工作表代码区域中)