excel - VBA - 使用 vba 隐藏预定义范围
问题描述
我有一个相对困难的问题,我认为这与我定义变量的方式有关,我无法解决这个问题,因此有以下问题。无论如何,感谢您花时间阅读。
我有表 1 和表 2
在工作表 1 上,根据用户选择、复选框值等创建了一个表。这很好。
然后,我正在查看工作表 1 中的某一行,它的值,applying =(int(not(isblank(cellreference))))
,如果它有值,则给我一个 1,如果它没有值,则给我一个零。
然后我将我得到的 1 的数量相加给我一个值。该值被添加到工作表 2 中的预定义范围,这是工作表 1 中表格的“结果”。它本质上是在打印文档,但我不希望空行可见。
使用我应用的接收到的值="A"&"191"+SUM(P5:P20)&":M206"
,它给了我一个范围 A199:M206(名为 HideRowsGF 的单元格。然后我想在工作表 2 中使用这个范围来隐藏行,所以我的代码如下,但我无法让它工作
执行和如果,如果 if 是正确的,我正在调用 HideRows 隐藏下面的行
Private Sub HideRows() ' Range 191 - 206
Dim HideRowsSheet2 As String
Set HideRowsSheet2 = SH1.Range("HideRowsGF").Value
'SH2.Rows("HideRowsSheet2").EnireRow.Hidden = True
End Sub
基本上,我使用公式来获取工作表 1 上的路径,并尝试使用该路径隐藏工作表 2 上的行,但无法使其正常工作。
请让我知道你的想法。谢谢
解决方案
您有一些语法问题和一个错字。
对于该行Set HideRowsSheet2 = SH1.Range("HideRowsGF").Value
- vba 不需要使用Set
关键字设置字符串的值。
对于 line 'SH2.Rows("HideRowsSheet2").EnireRow.Hidden = True
,您有三个问题 - 拼写错误EnireRow
,您没有使用引号引用字符串变量,并且您无法使用该Rows()
函数选择范围内的行。
Private Sub HideRows()
Dim SH1 As Worksheet
Set SH1 = Sheets("Sheet1")
Dim SH2 As Worksheet
Set SH2 = Sheets("Sheet2")
Dim HideRowsSheet2 As String
HideRowsSheet2 = SH1.Range("HideRowsGF").value 'named range HideRowsGF has address "A199:M206"
SH2.Range(HideRowsSheet2).EntireRow.Hidden = True
End Sub
推荐阅读
- javascript - 街机物理碰撞不会与墙壁水平碰撞?
- django - 如何反向序列化程序,如 ForeignKey 中的模型?
- scala - 如何使用 spark jdbc 连接截断 teradata 中的表
- c++ - 如何让这个程序运行得更快?
- java - 我的程序运行但没有输出
- java - 如何根据 WSDL 验证soap请求
- java - 我想检查我的用户输入是否包含一个子字符串,它是我的 firestore 数据库中的一个文档,这在 Java 中是否可行?(安卓工作室)
- powershell - 将一个函数作为参数的值添加到powershell中的另一个函数中
- c# - 检查参数值是否在查询中为空
- python - 在 python 中使用 urllib3 模块而不是请求