关于Excel VBA 隐藏行或列的问题
问题1:Rows("1:1").EntireRow.Hidden=True这条语句放到宏里手动执行好用但是放到自定义函数里,根据条件自动执行就没反应了。问题2:Priva...
问题1:
Rows("1:1").EntireRow.Hidden = True
这条语句放到宏里手动执行好用
但是放到自定义函数里,根据条件自动执行就没反应了。
问题2:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = 0 Then Target.Row.EntireRow.Hidden = True
End Sub
上面的代码为什么执行时报“.Row”为 “无效限定符”?
忘高手解答。
第二个问题不太重要 主要是第一个
第一个的代码如下 随便写了个大概就是这个意思:
Function Test(IDNum As Range) As String
Dim a As String
a = ""
If IDNum.Value = 0 Or IDNum.Value = "" Then
Sheet1.Rows(IDNum.Row).EntireRow.Hidden = True
MsgBox (IDNum.Row)
a = "True"
Else
a = "False"
End If
Test = a
End Function
上面这个自定义函数要是放到按钮事件里就好用比如:
Private Sub CommandButton1_Click()
Test (Sheet1.Cells(5, 3))
End Sub
但是要是放到单元格里隐藏行的代码就没作用了 比如:
在A2单元格写 =Test(A1) 展开
Rows("1:1").EntireRow.Hidden = True
这条语句放到宏里手动执行好用
但是放到自定义函数里,根据条件自动执行就没反应了。
问题2:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = 0 Then Target.Row.EntireRow.Hidden = True
End Sub
上面的代码为什么执行时报“.Row”为 “无效限定符”?
忘高手解答。
第二个问题不太重要 主要是第一个
第一个的代码如下 随便写了个大概就是这个意思:
Function Test(IDNum As Range) As String
Dim a As String
a = ""
If IDNum.Value = 0 Or IDNum.Value = "" Then
Sheet1.Rows(IDNum.Row).EntireRow.Hidden = True
MsgBox (IDNum.Row)
a = "True"
Else
a = "False"
End If
Test = a
End Function
上面这个自定义函数要是放到按钮事件里就好用比如:
Private Sub CommandButton1_Click()
Test (Sheet1.Cells(5, 3))
End Sub
但是要是放到单元格里隐藏行的代码就没作用了 比如:
在A2单元格写 =Test(A1) 展开
5个回答
展开全部
问两个问题太抠门了呵呵。
第一个问题,因为没代码,建议检查条件。顺便在Rows前面指定Sheet。
第二个问题比较简单。Target.Row返回行号;Target.Rows才是返回Range对象。
第一个问题,因为没代码,建议检查条件。顺便在Rows前面指定Sheet。
第二个问题比较简单。Target.Row返回行号;Target.Rows才是返回Range对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Worksheet_Change(ByVal Target As Range)
Dim H As Integer
H = ActiveCell.Row '获得当前单元格的行号
If Target.Column = 1 And Target.Value = 0 And ActiveCell.Column = 1 Then
Rows(H - 1 & ":" & H - 1).EntireRow.Hidden = True
EndIf
End Sub
Dim H As Integer
H = ActiveCell.Row '获得当前单元格的行号
If Target.Column = 1 And Target.Value = 0 And ActiveCell.Column = 1 Then
Rows(H - 1 & ":" & H - 1).EntireRow.Hidden = True
EndIf
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把THEN 后边的TARGET.ROW 改成TARGET.ROWS()就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, x
i = Target.Column
x = Target.Row
If i = 1 And x = 1 Then
Rows(x).Select
Selection.EntireRow.Hidden = True
End If
End Sub
单元格坐标没有0,选择行要用rows
Dim i, x
i = Target.Column
x = Target.Row
If i = 1 And x = 1 Then
Rows(x).Select
Selection.EntireRow.Hidden = True
End If
End Sub
单元格坐标没有0,选择行要用rows
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询