运行时错误';91';:适用于Mac VBA的Excel 2011

运行时错误';91';:适用于Mac VBA的Excel 2011,vba,excel,osx-yosemite,Vba,Excel,Osx Yosemite,我正在创建一个宏,将每周报告中的信息提取到主工作表中;我已经完成了几个步骤,但是我的单元格一直出现错误。查找编码。我不知道为什么会发生这种情况,因为宏记录器编写相同的代码,这只是用变量替换我的手动输入的问题 随附的是有问题的线为粗体的sub Sub Pull_W01_Data_Click() Dim Advisor As Variant 'defines advisor name from first subroutine Dim Buddy As Workbook 'defines xxx

我正在创建一个宏,将每周报告中的信息提取到主工作表中;我已经完成了几个步骤,但是我的单元格一直出现错误。查找编码。我不知道为什么会发生这种情况,因为宏记录器编写相同的代码,这只是用变量替换我的手动输入的问题

随附的是有问题的线为粗体的sub

Sub Pull_W01_Data_Click()

Dim Advisor As Variant 'defines advisor name from first subroutine
Dim Buddy As Workbook 'defines xxx as destination file
Dim x As Workbook 'defines existing report file as source
Dim Destination As Range 'defines destination range of data pulled from report file

Advisor = Worksheets("Advisor Summary").Range("A1").Value
Set Buddy = Workbooks("file1name.xlsm")
Set x = Workbooks.Open("file2name.xlsm")
Set Destination = Workbooks("file1name.xlsm").Worksheets("Input").Range("B2:S2")

'check if advisor name is entered
    If Advisor = "" Then
    MsgBox ("Your name is not visible; please start from the Reference tab.")
    Worksheets("Reference").Activate
    Exit Sub
End If

x.Activate
Cells.Find(What:=Advisor, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate

ActiveSheet.Range("$A$2:$DQ$11").AutoFilter Field:=1, Criteria1:=Advisor
Range("A7:CD7").Select
Selection.Copy
Destination.Activate
ActiveSheet.Paste

Application.ScreenUpdating = True

ActiveWorkbook.Save

End Sub
出现运行时错误91的行:

单元格。查找(What:=Advisor,After:=ActiveCell,LookIn:=xlFormulas,LookAt:=xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext,MatchCase:=False)。激活


有什么想法吗?我的语法错了吗?我把变量的名称搞乱了吗?

我想你需要一个find()的范围。用x.range(“A1:AA1000”)Edit:ohooops,x是工作簿,而不是x.activate。首先设置工作表。编辑2:同时删除
。最后激活
。嘿,谢谢你的回复!问题是,我将要提取的数据位于许多可用工作表中的一个工作表上……因此我希望能够创建一个宏来搜索整个工作簿,以查找dim Advisor捕获的值(无论它位于哪个工作表上),然后激活该工作表并过滤/复制/粘贴数据。实际上,我对它进行了一些研究,并找到了一种使其工作的方法……但它只从工作簿x的默认工作表中提取数据。因此,我在使用find函数时遇到了问题,无法根据变量找到正确的数据。我认为在工作簿中找不到。循环浏览所有工作表?我想您需要查找()的范围。用x.range(“A1:AA1000”)
Edit:ohooops,x是工作簿,而不是x.activate。首先设置工作表。编辑2:同时删除
。最后激活
。嘿,谢谢你的回复!问题是,我将要提取的数据位于许多可用工作表中的一个工作表上……因此我希望能够创建一个宏来搜索整个工作簿,以查找dim Advisor捕获的值(无论它位于哪个工作表上),然后激活该工作表并过滤/复制/粘贴数据。实际上,我对它进行了一些研究,并找到了一种使其工作的方法……但它只从工作簿x的默认工作表中提取数据。因此,我在使用find函数时遇到了问题,无法根据变量找到正确的数据。我认为在工作簿中找不到。循环浏览所有的表单?