簡體   English   中英

運行時錯誤91

[英]Run-time error 91

我遇到運行時錯誤91,不知道為什么。 我將此代碼用於另一本工作簿,並且效果很好,我提取的列中的信息不同,但是我將所有列和范圍更改為正確的列,但是現在我在這里得到了這個錯誤,也是唯一的區別是范圍,請幫忙!

Range(Cells(20, 1), Cells(LastRow, LastCol)).Select
    Selection.AutoFilter
    Range("C2").Select

那是開始,但是這里是發生錯誤的地方:

ActiveWorkbook.Worksheets(msheet).AutoFilter.Sort.SortFields. _
        Add Key:=Range("A20:A" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal

請幫助,我不知道我在想什么。 謝謝!

這是代碼的開頭:

Sub getdata()
Dim mastername As String
Dim count As Long
Dim match As Long
Dim repeat As Long
Dim path As String
Dim status As String
Dim name As String
Dim mpath As String
Dim cpath As String
Dim LastRow As Long
Dim LastCol As Integer
Dim mbank As String
Dim mname As String

mpath = Sheets("Master log").Cells(14, "W").Value
mname = Sheets("Master log").Cells(15, "W").Value
msheet = Sheets("Master log").Cells(16, "W").Value
Sheets("MGPR1").Range("A1:AA50000").ClearContents

name = Application.ActiveWorkbook.name
cpath = Application.ActiveWorkbook.path & "\"

Windows(name).Activate

'--open Management report  workbook if not already open
If CheckFileIsOpen(mname) = False Then
Workbooks.Open mpath & mname
End If
'-------------------------------------------

Windows(mname).Activate
    Sheets(msheet).Select

    'select full data

    With ActiveSheet
        LastRow = .Cells(.Rows.count, "A").End(xlUp).Row
    End With

    With ActiveSheet
       ' LastCol = .Cells(1, .Columns.count).End(xlToLeft).Column
       LastCol = 20
    End With

您必須引用該range("A20.....")的工作表range("A20.....") ,否則要在活動工作表中進行引用。

類似於sh.range("...") ,或使用with部分,例如以下示例:

with ActiveWorkbook.Worksheets(msheet)
    .AutoFilter.Sort.SortFields. _
    Add Key:= .Range("A20:A" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, _
    DataOption:=xlSortNormal
end with

也有助於參考,並停止使用激活/選擇:

 Dim Wb as Workbook
 Dim Sh as Worksheet

 'other code, i just write the needed code now
 set wb = Workbooks.Open mpath & mname
 set Sh = wb.Sheets(msheet)

 with Sh

     LastRow = .Cells(.Rows.count, "A").End(xlUp).Row
     'lots of stuff to do (....) please wait , computing .... error / no really i try to be serious here!
 end with

錯誤的含義是:

91-未設置對象變量

這是鈍的對象鏈。 這是一個錄制的宏,可以執行您要嘗試執行的操作。 如果有疑問,可以將復雜的語句簡化為簡單的語句。

也總是做一個Msgbox Vartype(whatever):Msgbox IsEmpty(whatever):msgbox IsNull(whatever) 這使您可以檢查什么是假設。

Range("A1:G19").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="<>sub", Operator:=xlAnd
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
Range("H34").Select

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM