Excel VBA类型不匹配工作表对象

时间:2017-11-27 18:41:22

标签: excel vba excel-vba

我收到编译错误:

  

类型不匹配

并无法确定问题的根源。我确信这很简单。当我使用ws对象作为参数调用CreateUniqueEmpList时,错误显示(VBE特别突出显示recordsWS参数。

Sub Main()

    Dim recordsWS As Worksheet
    Dim empsByJobTitles As Worksheet

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    Set recordsWS = Sheets("Student&GroupTransDetails")
    Set empsByJobTitles = Sheets("Employees")

    Call CreateUniqueEmpList(ByVal recordsWS, ByVal empsByJobTitles)

End Sub

Sub CreateUniqueEmpList(tranWS As Worksheet, empWS As Worksheet)

    empWS.Cells.Clear

    tranWS.UsedRange.AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=empsWS.Range("A1"), unique:=True

    empWS.Columns.AutoFit

End Sub

我做了什么:

  1. 注释掉对CreateUniqueEmpList的调用,设置一个断点,并检查以确保工作表对象已设置。是的。
  2. 从方法调用中删除了括号。然后整行看起来像这样:CreateUNiqueEmpList ByVal recordsWS, ByVal empsByJobTitles
  3. 使用Set代替Worksheets()更改了Sheets()两个工作表对象的方式。
  4. 非常感谢任何帮助。

0 个答案:

没有答案