Excel VBA,循环

我很新的VBA,不能得到一个loop工作。

J列包含某些ID号码 。 对于每个ID号我有几行显示在我的数据库。 我sorting我的数据库J列(升序)。 我想筛选列J中的所有值,并将每个ID号码的所有行复制到一张新的表中,我想重命名为ID号 。 这里是macros,但loop不起作用( Run-time error 13, Type mismatch, error in the following code row: For i = 45 To LastEmpNo

任何帮助将受到欢迎。 谢谢

 Sub Macro3() Dim MyDataFirstCell Dim MyDataLastCell Dim EmpNoStart Dim EmpNoFinish Dim i As Integer Range("A1").Select MyDataFirstCell = ActiveCell.Address Selection.End(xlDown).Select Selection.End(xlToRight).Select MyDataLastCell = ActiveCell.Address Range("J2").Select EmpNoStart = ActiveCell.Address Selection.End(xlDown).Select EmpNoFinish = ActiveCell.Address Range(EmpNoStart & ":" & EmpNoFinish).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns _ ("K:K"), Unique:=True Dim FirstEmpNo Dim LastEmpNo Range("K2").Select FirstEmpNo = ActiveCell.Address Selection.End(xlDown).Select LastEmpNo = ActiveCell.Address For i = FirstEmpNo To LastEmpNo Range("J1").Select Selection.AutoFilter ActiveSheet.Range(MyDataFirstCell & ":" & MyDataLastCell).AutoFilter Field:=10, Criteria1:=i Rows("1:1").Select Range("C1").Activate Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste Columns("B:B").EntireColumn.AutoFit Cells.Select Cells.EntireColumn.AutoFit Sheets("Sheet1").Select Sheets("Sheet1").Name = i Next i End Sub 

你不能从一个string值迭代到另一个string值。 “For”循环需要两个数字值。

 ?activecell.Address $C$9 ?activecell.Row 9 

因此:

 FirstEmpNo = ActiveCell.Row Selection.End(xlDown).Select LastEmpNo = ActiveCell.Row