尝试激活工作表时input不匹配13错误

我读过的所有东西都显示我正确地表示了我的variables,并调用了我想要激活的工作表。 最后一行是我得到的types不匹配。 此时CPIDws = CERN000006。 我在某个地方看到,名字是字母和数字可能会有问题,但是还没有find解决办法。

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 

此时CPIDws = CERN000006。

不,不。 🙂

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

因此,types不匹配。

尝试简单的CPIDws.Activate

或者,可以说,你可以做冗余: Sheets(CPIDws.Name).Activate

这可能也会有帮助,因为通常build议不要依赖Active (单元格,工作表等)或Selection时,它可以避免(这几乎总是这样,除了某些情况下,当您使用Selection作为但是一般情况下,你的macros可能永远不需要select或者激活除了用户select的input以外的任何单元,在你的情况下,因为你从Cells(1,1)并且控制迭代完全通过代码,没有必要SelectActivate任何东西。