尝试使用vba隐藏行的“types不匹配”

我想要做的就是隐藏行,所以我的界面更轻,但当我编译我的代码时,出现以下错误消息:

types不匹配(错误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 

我立即看到一个问题。 当你正在做你的ActiveSheet.Rows("startRow:endRow").EntireRow.Hidden = True你没有调用这些variables,你说他们是string。

试试这个:

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

这样,你正在调用variables,唯一的“string”是:(冒号)。

另外,下一次你问,请确保你解释,如果你收到一个错误,或者只是没有达到你想要的结果。 我猜你正在得到一个types不匹配的错误,但我不能确定。 这有助于每个人更好地协助你。

这个代码解决了我的挑战,但有没有更好的方法来定义最后一行的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