Excel VBA-在动态文件名中删除日期

用户名

我是VBA的业余爱好者。

我的目标是使用多个我设法实现的文件压缩该文件夹。但是我需要格式化文件名。

文件夹中的某些文件可能包含日期作为文件名的前缀或后缀(例如:ddmmyyyyexpense.xlsxexpenseddmmyyyy.txt)。

我想从文件名中删除日期。

注意:我可以有任何文件类型

.xls
.xlsx
.csv
.txt

我尝试使用通配符追加到一个字符串中,VBtextcompare但是没有用。

布雷特杰

因为我喜欢RegExp,所以我会:)

这段代码寻找一个八位数的数字,测试这是否是一个有效的日期,如果是,则将其删除。

如果您有多个可能的日期,或者8位数字被其他数字包围,则需要进行细化。

下面的代码将三个示例字符串提供给清洗功能,它从第一个和第三个剥离日期,而第二个照原样保留。

Sub TestDate()
Debug.Print CleanStr("01142012expense.xlsx")
Debug.Print CleanStr("421142012expense.xlsx")
Debug.Print CleanStr("expense16042015.xlsx")
End Sub

代码

Function CleanStr(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
    .Pattern = "(\d{2})(\d{2})(\d{4})"
    If .test(strIn) Then
        Set objRegMC = .Execute(strIn)
        If IsDate(objRegMC(0).submatches(0) & "/" & objRegMC(0).submatches(1) & "/" & objRegMC(0).submatches(2)) Then
            CleanStr = .Replace(strIn, vbNullString)
        Else
            CleanStr = strIn
        End If
    End If
End With
End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA-在动态文件名中删除日期

来自分类Dev

Excel VBA 从文件名中提取日期

来自分类Dev

在excel中根据变量文件名VBA打开文件

来自分类Dev

Excel VBA 中 SAS 插件引用的 DLL 文件名

来自分类Dev

Excel VBA重命名文件名

来自分类Dev

如何在Excel中使用VBA向文件名添加日期和时间

来自分类Dev

如何在Excel中使用VBA向文件名添加日期和时间

来自分类Dev

在SaveAs窗口中设置Excel文件的文件名,而在vba中不使用sendkey

来自分类Dev

Excel VBA高效获取文件名功能

来自分类Dev

在Excel VBA中使用变量搜索文件名

来自分类Dev

VBA Excel:使标题取决于文件名

来自分类Dev

用VBA获取excel文件名信息

来自分类Dev

VBA Excel:删除Excel行

来自分类Dev

Excel VBA 中的动态范围

来自分类Dev

Excel VBA日期格式

来自分类Dev

Excel VBA:日期比较

来自分类Dev

Excel VBA 日期替换

来自分类Dev

Excel VBA中的日期格式

来自分类Dev

Excel VBA删除行

来自分类Dev

VBA中的Excel RTD

来自分类Dev

Excel VBA中的超时

来自分类Dev

VBA Excel中的排列

来自分类Dev

在Excel VBA中循环

来自分类Dev

在Excel VBA中“包含”?

来自分类Dev

Excel VBA中的Vlookup

来自分类Dev

使用VBA删除公式中对文件名的引用

来自分类Dev

VBA Excel从GetFolder.Files返回的文件集合中获取第一个文件名

来自分类Dev

VBA Excel从GetFolder.Files返回的文件集合中获取第一个文件名

来自分类Dev

删除文件夹VBA中的非Excel文件