在循环中创build工作簿

嗨,我正在过滤数据和复制到新的工作簿。 我不能重新命名为mayday (在string中添加整数值)在新的工作簿,并获得type mismatch error – 请帮助需要做什么

 Sub ButtoClick() Dim wbs2 As Worksheet Dim wkb As Workbook Dim strpath As String Set wbs2 = Workbooks("Nov Collections-CF").Worksheets("Nov Collections-CF") Dim myday As Integer strpath = ("C:\Users\ashokkumar.d\Desktop\New folder (2)\") ran = ThisWorkbook.ActiveSheet.Range("A1:A16") For Each cel In ran myday = Day(cel) dDate = DateSerial(Year(cel), Month(cel), Day(cel)) Set wkb = Workbooks.Add wkb.SaveAs FileName:=(strpath + "Nov Collections-CF" + myday + ".xlsx") 'Type Mismatch Error wbs2.Range("A1:K1").AutoFilter Field:=4, Criteria1:=Format(dDate, "dd/mm/yyyy"), Operator:=xlFilterValues wbs2.UsedRange.SpecialCells(xlCellTypeVisible).Copy With wkb.Sheets(1).Range("A1") .PasteSpecial xlPasteFormats .PasteSpecial xlPasteValues End With wkb.Save wkb.Close Next End Sub 

尝试使用&符号连接,如下所示:

  wkb.SaveAs FileName:=(strpath & "Nov Collections-CF" & myday & ".xlsx") 

另外你可以添加转换function:

  wkb.SaveAs FileName:=(strpath & "Nov Collections-CF" & Cstr(myday) & ".xlsx") 

当你试图用“+”号将数字和string加在一起时,VBA可能会感到困惑。

更改

 wkb.SaveAs FileName:=(strpath + "Nov Collections-CF" + myday + ".xlsx") 

改为这个

 wkb.SaveAs FileName:=(strpath & "Nov Collections-CF" & myday & ".xlsx") 

如果你想连接一个+ ,你应该确保所有的值都是string。 myday被声明为一个整数。 因此,尝试“串”它:

 wkb.SaveAs Filename:=(strpath + "Nov Collections-CF" + CStr(myday) + ".xlsx")