我有一个运行时错误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
需要更多的细节。你的第一个代码看起来像是对大范围进行排序,但是你的第二个代码只是对列A进行排序。另外,什么是'msheet'?它是你定义的变量吗?如果它是工作表的名称,那么使用'Sheets(“msheet”)' – Chrismas007 2014-11-14 21:38:47
根据错误,我认为它与'msheet'周围缺少引号有关。 – Chrismas007 2014-11-14 21:41:52
Dim s As Worksheet Set s = Worksheets(1)... msheet可以是索引吗? – dee 2014-11-14 21:46:22