Excel VBA代码(指定给按钮),用于根据其他工作表中的单元格值隐藏/取消隐藏行
我正在做一张表格,计算风险等级,最后选择问卷类型,即“场外-Lite”。通过选择此值,我希望另一个工作表名称“C.问卷”中的某些行被隐藏。为此,我在表格“C.问卷”中使用了值为“完整”的D列。我想通过ActiveX按钮完成此任务Excel VBA代码(指定给按钮),用于根据其他工作表中的单元格值隐藏/取消隐藏行,vba,excel,Vba,Excel,我正在做一张表格,计算风险等级,最后选择问卷类型,即“场外-Lite”。通过选择此值,我希望另一个工作表名称“C.问卷”中的某些行被隐藏。为此,我在表格“C.问卷”中使用了值为“完整”的D列。我想通过ActiveX按钮完成此任务 Sub OpenQuestionnaire() With ThisWorkbook.Worksheets("C. Questionnaire") .Visible = xlSheetVisible .Activate If
Sub OpenQuestionnaire()
With ThisWorkbook.Worksheets("C. Questionnaire")
.Visible = xlSheetVisible
.Activate
If Range("XFD3").Value = "Offsite - Lite" Then
Sheets("C. Questionnaire").Select
Columns("G").Hidden = True
ElseIf Range("XFD3").Value = "Onsite - Full" Then
Columns("G").Hidden = True
End If
If Range("XFD1").Value = "No" Then
Range("H166").Select
ActiveCell.FormulaR1C1 = "Not Applicable"
Range("I166").Select
ActiveCell.FormulaR1C1 = "Not Applicable"
Range("H166").Select
Selection.AutoFill Destination:=Range("H166:H181"), Type:=xlFillDefault
Range("H166:H181").Select
Selection.AutoFill Destination:=Range("H166:I181"), Type:=xlFillDefault
Range("H166:I181").Select
Rows("163:181").EntireRow.Hidden = True
ElseIf Range("XFD1").Value = "Yes" Then
Rows("163:181").EntireRow.Hidden = False
End If
If Range("XFD2").Value = "No" Then
Range("H216").Select
ActiveCell.FormulaR1C1 = "Not Applicable"
Range("I216").Select
ActiveCell.FormulaR1C1 = "Not Applicable"
Range("H216").Select
Selection.AutoFill Destination:=Range("H216:H232"), Type:=xlFillDefault
Range("H216:H232").Select
Selection.AutoFill Destination:=Range("H216:I232"), Type:=xlFillDefault
Range("H216:I232").Select
Rows("213:233").EntireRow.Hidden = True
ElseIf Range("XFD2").Value = "Yes" Then
Rows("213:233").EntireRow.Hidden = False
End If
End With
End Sub
这是上述代码的清理版本,删除
Activate
和Select
:
Sub OpenQuestionnaire()
With ThisWorkbook.Worksheets("C. Questionnaire")
.Visible = xlSheetVisible
If .Range("XFD3").Value = "Offsite - Lite" Or .Range("XFD3").Value = "Onsite - Full" Then
.Columns("G").Hidden = True
End If
If .Range("XFD1").Value = "No" Then
.Range("H166:I181").Value = "Not Applicable"
.Rows("163:181").EntireRow.Hidden = True
ElseIf .Range("XFD1").Value = "Yes" Then
.Rows("163:181").EntireRow.Hidden = False
End If
If .Range("XFD2").Value = "No" Then
.Range("H216:I232").Value = "Not Applicable"
.Rows("213:233").EntireRow.Hidden = True
ElseIf Range("XFD2").Value = "Yes" Then
.Rows("213:233").EntireRow.Hidden = False
End If
End With
End Sub
那么什么不起作用呢?你有错误吗?“请帮帮我”这句话对我们来说还不足以帮助你。请阅读。我需要一些代码形成方面的帮助。我无法在另一个工作表中单击按钮隐藏行。在VBA中,如果代码读取范围(“A1”),Excel认为您指的是活动工作表上的单元格A1。您可以通过
工作表(“名称”)根据工作表指定范围。范围(“A1”)
——示例短语告诉excel我指的是工作表“名称”上的范围(A1)。