Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码(指定给按钮),用于根据其他工作表中的单元格值隐藏/取消隐藏行_Vba_Excel - Fatal编程技术网

Excel VBA代码(指定给按钮),用于根据其他工作表中的单元格值隐藏/取消隐藏行

Excel VBA代码(指定给按钮),用于根据其他工作表中的单元格值隐藏/取消隐藏行,vba,excel,Vba,Excel,我正在做一张表格,计算风险等级,最后选择问卷类型,即“场外-Lite”。通过选择此值,我希望另一个工作表名称“C.问卷”中的某些行被隐藏。为此,我在表格“C.问卷”中使用了值为“完整”的D列。我想通过ActiveX按钮完成此任务 Sub OpenQuestionnaire() With ThisWorkbook.Worksheets("C. Questionnaire") .Visible = xlSheetVisible .Activate If

我正在做一张表格,计算风险等级,最后选择问卷类型,即“场外-Lite”。通过选择此值,我希望另一个工作表名称“C.问卷”中的某些行被隐藏。为此,我在表格“C.问卷”中使用了值为“完整”的D列。我想通过ActiveX按钮完成此任务

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)。