尝试激活 sheet 时出现类型不匹配 13 错误

Type Mismatch 13 error when trying to activate a sheet

我读过的所有内容都表明我正确地表示了我的变量并调用了我想要激活的 sheet。最后一行是我得到类型不匹配的地方。此时 CPIDws = CERN000006。我在某处读到,名称由字母和数字组成可能会有问题,但还没有找到解决方法。

Sub Create_tab()

Dim newWS As Worksheet, CernWS As Worksheet, CPID As Variant
Dim Template As Worksheet, CPIDclm As Long, CERNdata As Range, CPIDcheck As Variant
Dim lngRow As Long, lngCol As Long, i As Integer, CPIDws As Worksheet

Set Template = Sheets("Template")
Set CernWS = Sheets("CERN ID's")
'Set lngRow = 1
'Set lngCol = 1


CernWS.Activate
Cells(1, 1).Select

Do
    ActiveCell.Offset(1, 0).Select
    Set CPID = ActiveCell

    'create a new sheet as a copy of the template
    Sheets("Template").Copy _
           after:=ActiveWorkbook.Sheets(ThisWorkbook.Sheets.Count)

    'Name the new sheet as the current CPID value from CERN ID's worksheet
    ActiveSheet.Name = CPID
    Set CPIDws = ActiveSheet

    'interigate AAA Data and update the new sheet with the data specific to the current cpid
    Sheets("AAA Data").Activate
    Cells(2, 3).Activate
    Set CPIDcheck = ActiveCell

    Do
        If CPID = CPIDcheck Then
            ActiveCell.Offset(0, -2).Select
            Set CERNdata = Range(Selection, Selection.End(xlToRight))
        End If

        Sheets(CPIDws).Activate

At that point CPIDws = CERN000006.

不,不是。 :)

您已声明 CPIDws As Worksheet 但您将其用作 Sheets 方法的参数,该方法采用索引(整数)或名称(字符串)值。

因此,类型不匹配。

简单地尝试CPIDws.Activate

或者,可以说你可以做多余的事情:Sheets(CPIDws.Name).Activate

THIS 也可能会有帮助,因为通常建议不要依赖 Active(单元格、sheet 等)或 Selection避免(几乎总是如此,除了某些情况下,当您使用 Selection 作为输入方法时。但通常,您的宏可能永远不需要 SelectActivate 除了用户选择输入的单元格之外的任何单元格。在你的情况下,因为你从 Cells(1,1) 开始并完全控制迭代代码,根本不需要 SelectActivate 任何东西。