Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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中使用行中的偏移函数()函数_Excel_Vba - Fatal编程技术网

Excel 如何在vba中使用行中的偏移函数()函数

Excel 如何在vba中使用行中的偏移函数()函数,excel,vba,Excel,Vba,我想写一个函数,根据您选择的下拉选项隐藏某些行。我必须在工作表中多次重复使用此代码,因此我不希望它依赖于单元格,而是使用OFFSET函数 这是我写的 Tcell = Range("D3") If Tcell = "example 1" Then Rows("4:19").Hidden = False Rows("12:19").Hidden = True ElseIf Tcell = "

我想写一个函数,根据您选择的下拉选项隐藏某些行。我必须在工作表中多次重复使用此代码,因此我不希望它依赖于单元格,而是使用OFFSET函数

这是我写的

Tcell = Range("D3")

If Tcell = "example 1" Then 
    Rows("4:19").Hidden = False
    Rows("12:19").Hidden = True
ElseIf Tcell = "example 2" Then
    Rows("4:19").Hidden = False
    Rows("10:19").Hidden = True
ElseIf Tcell = "example 3" Then
    Rows("4:19").Hidden = False
    Rows("16:19").Hidden = True
End If
我试着使用下面这样的东西,但它有一个13型匹配错误。谢谢你的帮助

 If Tcell = "example 1" Then 
    Rows("Tcell.Offset(1):Tcell.Offset(16)").Hidden = False
    Rows("Tcell.Offset(1):Tcell.Offset(16)").Hidden = True
范围
对象的属性,不属于括号内。
Tcell

首先将
t单元格
更改为
范围
并设置它

然后您可以在此处使用和:


我认为您需要将Tcell调暗为一个范围,然后使用“set Tcell=range(“D3”)”@Amiga500-good point进行设置。我忽略了
Tcell=Range(“D3”)
,因为它在问题的代码块之外。编辑以修复该问题和答案。@BigBen感谢您的帮助。我想知道第二行的9和8是从哪里来的?对不起,我几周前才开始使用vba。这只是简单的数学。如果起始单元格位于第3行,并且希望到达第12行,则偏移9行。然后
行(“12:19”)
包含8行。@BigBen哦,好的,我现在看到了,再次感谢!
Dim Tcell As Range
Set Tcell = ActiveSheet.Range("D3")

If Tcell.Value = "example 1" then
    ActiveSheet.Rows(Tcell.Row).Offset(1).Resize(16).Hidden = False 
    ActiveSheet.Rows(Tcell.Row).Offset(9).Resize(8).Hidden = True

' and similarly for the other cases

End If