Excel 添加MMYYYY以在变量上保存名称

Excel 添加MMYYYY以在变量上保存名称,excel,vba,Excel,Vba,我有一个代码,可以将工作表拆分成新的工作簿,并按B列中的名称保存它们。 我要做的是在保存每个文件时,在文件名的末尾添加“ABC MM_YYYY” 我知道在设置fileNm时应该插入一行类似的内容: Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") 我试过了 fileNm = Dir(loopFolder & "*ABC " & Format(DateSerial(Year(Date), Month(Dat

我有一个代码,可以将工作表拆分成新的工作簿,并按B列中的名称保存它们。 我要做的是在保存每个文件时,在文件名的末尾添加“ABC MM_YYYY”

我知道在设置fileNm时应该插入一行类似的内容:

Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy")
我试过了

fileNm = Dir(loopFolder & "*ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & ".xlsx")

fileNm = Dir(loopFolder & "ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & "*.xlsx")
没有运气。如果有人能指导我把这个修好,那就太棒了

Dim loopFolder As String
Dim fileNm As Variant
Dim myFiles As New Collection

loopFolder = "J:\Documents\Hookset\"
fileNm = Dir(loopFolder & "*.xlsx")

Do While fileNm <> ""
    myFiles.Add fileNm
    fileNm = Dir
Loop
将文件夹设置为字符串
Dim fileNm作为变体
将myFiles设置为新集合
loopFolder=“J:\Documents\Hookset\”
fileNm=Dir(loopFolder&“*.xlsx”)
当文件名为“”时执行此操作
myFiles.addfilenm
fileNm=Dir
环
*编辑-我看错了代码的部分,插入的日期应该在这里,而不是上面

''Dim FileExtStr作为字符串 Dim FileFormatNum尽可能长 将xWs设置为工作表 Dim xWb作为工作簿 Dim FolderName作为字符串 Application.ScreenUpdating=False

Set xWb = Application.ActiveWorkbook
FolderName = xWb.Path & "\Hookset\" 
For Each xWs In xWb.Worksheets
    xWs.Copy
    If Val(Application.Version) < 12 Then
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
        Select Case xWb.FileFormat
            Case 51:
                FileExtStr = ".xlsx": FileFormatNum = 51
            Case 52:
                If Application.ActiveWorkbook.HasVBProject Then
                    FileExtStr = ".xlsm": FileFormatNum = 52
                Else
                    FileExtStr = ".xlsx": FileFormatNum = 51
                End If
            Case 56:
                FileExtStr = ".xls": FileFormatNum = 56
            Case Else:
                FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
    End If

    xFile = FolderName & "\" & Application.ActiveWorkbook.Sheets(1).Name & " ABC " & Format(DateSerial(Year(Date), Month(Date) - 1, 1), "mm_yyyy") & FileExtStr
    Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum
Next
Set xWb=Application.active工作簿
FolderName=xWb.Path&“\Hookset”
对于xWb.工作表中的每个xWs
拷贝
如果Val(Application.Version)<12,则
FileExtStr=“.xls”:FileFormatNum=-4143
其他的
选择Case xWb.FileFormat
案例51:
FileExtStr=“.xlsx”:FileFormatNum=51
案例52:
如果Application.ActiveWorkbook.HasVBProject,则
FileExtStr=“.xlsm”:FileFormatNum=52
其他的
FileExtStr=“.xlsx”:FileFormatNum=51
如果结束
案例56:
FileExtStr=“.xls”:FileFormatNum=56
其他情况:
FileExtStr=“.xlsb”:FileFormatNum=50
结束选择
如果结束
xFile=FolderName&“\”&Application.ActiveWorkbook.Sheets(1)。Name&“ABC”&Format(DateSerial(年(日)、月(日)-1,1),“mm_-yyyy”)&FileExtStr
Application.ActiveWorkbook.SaveAs xFile,FileFormat:=FileFormatNum
下一个
'''


xFile中缺少我,现在运行良好。

以MMYYY结尾的文件名是新名称吗?如果是这样,为什么要在查找现有文件的
Dir
中使用它?我不太清楚,但是
“ABC”&chr(32)和format(现在是“mm yyy”)
也许吧?@BigBen就像你的问题一样简单,它让我看到了代码的正确部分。谢谢你还有问题吗?或者你的问题解决了吗?已经解决了。