发生VBA编译错误

时间:2017-11-29 14:37:10

标签: excel vba excel-vba

以下代码用于在首次打开工作簿时运行。

Sub Auto_Open()

Dim LastRow As Integer
LastRow = Sheet6.UsedRange.Rows.Count

ActiveWorkbook.RefreshAll

Sheet6.AutoFill Destination:=Range("Y2:Y" & LastRow)

End Sub

它会自动运行“全部刷新”以更新WorkBook中的任何查询或公式,然后将sheet6的Y列中的数据列表自动填充到可在WorkSheet中找到的最后一行数据。

当我去运行代码时,我得到了一个“编译错误:未找到数据成员的方法”#39;哪些亮点。

.Autofill

我不明白的是,这在同一个电子表格中非常有效,而不仅仅是这个。

我还尝试过以下代码,但不能在此工作表上工作,但另一方面也是如此。

Sub Auto_Open()

ActiveWorkbook.RefreshAll

Sheet6.AutoFill_ListSource

End Sub

ListSource是我尝试自动填充的Y列中表格的名称。

1 个答案:

答案 0 :(得分:3)

变化:

Sheet6.AutoFill Destination:=Range("Y2:Y" & LastRow)

为:

Sheet6.Range("Y2").AutoFill Destination:=Sheet6.Range("Y2:Y" & LastRow)

注意:a"更安全"获取最后一行的方法是使用Find函数:

Dim LastCell As Range
Dim LastRow As Long

With Sheet6
    Set LastCell = .Cells.Find(What:="*", After:=.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, _
                        searchorder:=xlByRows, searchdirection:=xlPrevious, MatchCase:=False)
    If Not LastCell Is Nothing Then
        LastRow = LastCell.Row
    Else
        MsgBox "Error! worksheet is empty", vbCritical
        Exit Sub
    End If
End With