我非常新手,并且在按命令按钮时尝试根据某些单元格中的值来显示/隐藏某些行。我需要2件事的帮助:
1)希望此操作实际上无需按任何按钮即可。即每次更改单元格C10的值时,代码都会运行以隐藏/显示。
2)我有4个在按下按钮时运行的子例程。其中三个工作正常。我无法运行“ Rows1to13”子例程。无法理解它,因为这是完全相同的例程,我只是更改了触发它的单元格并更改了隐藏的行范围。
我的代码在下面
Private Sub CommandButton4_Click()
Call HideDefault
Call rows1to13
End Sub
Sub HideDefault()
If (Range("C10")) = "Manual" Then
For a = 44 To 90
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = True
End If
Next
For a = 92 To 125
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = False
End If
Next
End If
If (Range("C10")) = "Manual" Then
MsgBox "Manual Data Entry chosen"
End If
End Sub
Sub rows1to13()
'and if C11=yes and C16=yes'
If (Range("C11")) = "Yes" Then
For a = 12 To 13
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = False
End If
Next
End If
If (Range("C16")) = "Yes" Then
For a = 17 To 20
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = False
End If
Next
End If
'and if C11=No and C16=No'
If (Range("C11")) = "No" Then
For a = 12 To 13
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = True
End If
Next
End If
If (Range("C16")) = "No" Then
For a = 12 To 13
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = True
End If
Next
End If
'and if C11= blank and C16= Blank'
If (Range("C11")) = "" Then
For a = 12 To 13
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = False
End If
Next
End If
If (Range("C16")) = "" Then
For a = 17 To 20
If Worksheets("Sheet1").Cells(a, 1).Value >= "0" Then
Worksheets("Sheet1").Rows(a).Hidden = False
End If
Next
End If
End Sub
答案 0 :(得分:1)
我发现了为什么代码未执行的问题。 。这很简单。该代码正在寻找要执行的单元格中的值,并且区分大小写。在工作表中,单元格的输入是用大写字母表示的,即“否”,但是编写的代码中查找“否”。
使用工作表更改事件来执行,而无需按下按钮。谢谢VBasic2008