我想要做的是隐藏行,以便我的界面更轻但我在编译代码时收到以下错误消息:
类型不匹配(错误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
答案 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