VBA:如果文件夹中filename.dat包含X,打开,运行宏,保存为filename.xlsm,关闭



我正在尝试创建一个宏,该宏将搜索文件夹中包含"OPS"(不区分大小写)的。dat文件,如果它找到一个文件,我想打开它并运行另一个宏,将文件保存为原始文件名。Xlsm,然后关闭。

到目前为止,我能搜索到这个名字,但这是我所知道的范围。

Sub Test2()
    Dim sh As Worksheet, lr As Long, fPath As String, fName As String, rFile() As Variant
    fPath = "C:UsersntunstallDesktoptest"
    ctr = 1
    fName = dir(fPath & "*.dat")
    Do Until fName = ""
        If InStr(fName, "OPS") > 0 Then
            ReDim Preserve rFile(1 To ctr)
            rFile(ctr) = fName
            ctr = ctr + 1
        End If
        fName = dir
    Loop
    For i = LBound(rFile) To UBound(rFile)
        'The variable rFile(i) represents the workbooks you want to work with.
        MsgBox rFile(i)  
    Next
End Sub

理想情况下,这个宏将在打开文件名中包含OPS的.dat文件时运行。

添加

Dim wb as workbook

,然后将消息框行替换为

Set wb = Workbooks.Open(fPath & rFile(i))
wb.SaveAs fPath & Split(rFile(i), ".")(0), xlOpenXMLWorkbookMacroEnabled
wb.Close

我测试了一个以制表符分隔的文件,效果很好。如果您有不同的格式,您的问题可能会有所不同。

相关内容

最新更新