我对 VBA 编程有点陌生。我在互联网上阅读了一些内容,但找不到我需要的内容或无法使其正常工作。我的问题:
在工作表“表 1”的单元格 B6 中,给出了项目将被利用的年数。
在工作表“sheet 2”和“sheet 3”中,我制作了 50 年的电子表格(第 1 年到第 50 年;第 7 行到第 56 行)。
在“sheet 1”的单元格 b6 中,我想输入一个 1 到 50 之间的值。当值为 49 时,我想隐藏“sheet2”和“sheet 3”中的第 56 行。当值为 48 时,我想隐藏“sheet2”和“sheet 3”中的第 55:56 行,依此类推。
这是我到目前为止所得到的,但当我更改单元格 B6 中的值时,我无法让它自动工作:
Sub test1()
If Range("sheet1!B6") = 50 Then
Rows("52:55").EntireRow.Hidden = False
Else
If Range("sheet1!B6") = 49 Then
Rows("55").EntireRow.Hidden = True
Else
If Range("sheet1!B6") = 48 Then
Rows("54:55").EntireRow.Hidden = True
End If: End If: End If:
End Sub
我希望有人能帮助我解决我的问题。
谢谢
你几乎明白了。
您正在隐藏活动工作表中的行。这没关系。但更好的方法是在它所在的位置添加。
Rows("52:55").EntireRow.Hidden = False
becomes
activesheet.Rows("52:55").EntireRow.Hidden = False
没有它我就发生过奇怪的事情。至于让它自动化。您需要在 VBA 编辑器(不是模块,双击编辑器最左侧的sheet1)中的工作表宏中使用 worksheet_change 事件。)在该工作表中,使用编辑器本身上方的下拉菜单(应该有2 个列表框)。左侧的列表框将包含您要查找的事件。之后只需放入宏即可。它应该类似于下面的代码,
Private Sub Worksheet_Change(ByVal Target As Range)
test1
end Sub
就是这样。每当您更改某些内容时,它都会运行宏 test1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)