【发布时间】:2018-05-07 00:08:02
【问题描述】:
我的单元格带有如下注释:
2017 年 5 月 26 日:从 1000 减少到 900
我想使用 VBA 仅从以下位置查找和替换 cmets 中的日期格式:
MMMM DD, YYYY
到
YYYY/MM/DD
搜索几个小时后我能找到的最佳代码如下,但不幸的是,它只能用文本查找和替换文本。我试图让它与格式一起工作,但我做不到。
Sub ReplaceComments()
Dim cmt As Comment
Dim wks As Worksheet
Dim sFind As String
Dim sReplace As String
Dim sCmt As String
sFind = "2011"
sReplace = "2012"
For Each wks In ActiveWorkbook.Worksheets
For Each cmt In wks.Comments
sCmt = cmt.Text
If InStr(sCmt, sFind) <> 0 Then
sCmt = Application.WorksheetFunction. _
Substitute(sCmt, sFind, sReplace)
cmt.Text Text:=sCmt
End If
Next
Next
Set wks = Nothing
Set cmt = Nothing
End Sub
【问题讨论】:
-
评论的格式总是日期:描述吗?
-
不幸的是,正如我的问题中所述/所示,评论在日期旁边包含更多文字。不仅是日期。
-
考虑一下:提取字符串的左端直到
:。尝试使用 DateSerial 将其转换为日期。如果它将生成的日期格式转换为 MMM DD、YYYY 并与原始提取的字符串进行比较。如果它们匹配日期格式为 YYYY/MM/DD 并替换字符串
标签: vba excel excel-2016