我得到运行时错误1004:应用程序定义或对象定义错误
Set wsht = ThisWorkbook.Worksheets("Input Checklist")
finalrow = wsht.Cells(wsht.Rows.Count, 1).End(x1Up).Row
与?
相关的错误是什么?答案 0 :(得分:1)
您有x1Up
而不是xlUp
。比较它们左右是1l
左边是代码中的数字1,右边是字母l。
答案 1 :(得分:0)
这可能是因为您在工作表级别录制了宏。您必须确保它在项目/整个模块级别上。
右键单击项目窗口中的modules节点,然后将宏粘贴到新模块中。还要确保工作表不处于保护模式,否则也会发生错误。
答案 2 :(得分:0)
您可能需要考虑以下功能。如果隐藏数据集的最后一行,或者(可能)应用了过滤器,则上面使用的方法将不起作用。下面的函数提供了一种更稳健的方法来实现相同的结果。
希望这有帮助
Function LastRowColumn(sht As Worksheet, RowColumn As String) As Long
'PURPOSE: Function To Return the Last Row Or Column Number In the Active Spreadsheet
'INPUT: "R" or "C" to determine which direction to search
Dim rc As Long
Select Case LCase(Left(RowColumn, 1)) 'If they put in 'row' or column instead of 'r' or 'c'.
Case "c"
LastRowColumn = sht.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Case "r"
LastRowColumn = sht.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Case Else
LastRowColumn = 1
End Select
End Function