Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在循环中创建工作簿_Vba_Excel - Fatal编程技术网

Vba 在循环中创建工作簿

Vba 在循环中创建工作簿,vba,excel,Vba,Excel,您好,我正在筛选数据并复制到新工作簿中。我无法在新工作簿中重命名为mayday(在字符串中添加整数值),并且出现类型不匹配错误-请帮助我做什么 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

您好,我正在筛选数据并复制到新工作簿中。我无法在新工作簿中重命名为
mayday
(在字符串中添加整数值),并且出现
类型不匹配错误
-请帮助我做什么

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") 
此外,您还可以添加转换功能:

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

当您试图使用“+”将数字和字符串添加到一起时,VBA可能会感到困惑

改变

wkb.SaveAs FileName:=(strpath + "Nov Collections-CF" + myday + ".xlsx")
相反地,我们必须这样做

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

如果要与
+
连接,应确保所有值都是字符串
myday
被声明为整数。因此,尝试将其“字符串化”:


感谢它的工作-发生了什么事
+
运算符为什么它不工作它应该在这里失败:ran=ThisWorkbook.ActiveSheet.Range(“A1:A16”)。若要将范围分配给变量,应使用Set关键字。另外,最好用Dim声明变量ran、cel和dDate。
wkb.SaveAs Filename:=(strpath + "Nov Collections-CF" + CStr(myday) + ".xlsx")