"类型不匹配"试图使用vba隐藏行

时间:2017-07-05 12:34:56

标签: excel vba excel-vba

我想要做的是隐藏行,以便我的界面更轻但我在编译代码时收到以下错误消息:

  

类型不匹配(错误13)

Public Function keepAdditionalRowsHidden()

Dim startRow As Long
Dim lastrow As Long

Dim startRowString As String
Dim endRowString As String

startRow = 40
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row

startRowString = CStr(startRow)
endRowString = CStr(lastrow)

ActiveSheet.Rows("startRow:endRow").EntireRow.Hidden = True

End Function

2 个答案:

答案 0 :(得分:1)

我立即看到了一个问题。当您执行ActiveSheet.Rows("startRow:endRow").EntireRow.Hidden = True时,您没有调用这些变量,而是将它们称为字符串。

请改为尝试:

ActiveSheet.Rows(startrow & ":" & endrow).EntireRow.Hidden = True

这样,你正确调用变量,唯一的“字符串”是:(冒号)。

另外,下次你问的时候请确保你说明你是否收到错误,或者只是没有达到你想要的结果。我猜这是一个类型不匹配错误,但我无法确定。这有助于每个人更好地为您提供帮助。

答案 1 :(得分:0)

这段代码解决了我的挑战,但有没有更清晰的方法来定义excel的最后一行,就像这样?

  

endRow = 1048576

Public Function keepAdditionalRowsHidden()

        Dim startRow As Long
        Dim endRow As Long

        startRow = ER.row + 1

        endRow = 1048576 ' last row of the excel

        ActiveSheet.Rows(startRow & ":" & endRow).EntireRow.Hidden = True
End Functioncode here