Vba VB.net从字符串获取日期
你能帮我从字符串/文本中提取日期吗 假设我有以下字符串Vba VB.net从字符串获取日期,vba,excel,Vba,Excel,你能帮我从字符串/文本中提取日期吗 假设我有以下字符串 “这是一个日期,2016年1月23日Stackoverflow!” “这是2016年8月27日的日期格式。” “2017年3月22日也是一个日期。” 我需要的输出是这个 2016年1月23日 2016年8月27日 2017年3月22日 基本上我只需要文本中的日期。 请帮忙。谢谢@pᴇ注释中共享的ʜRegex模式完全符合您的示例。下面是如何将其与单元内函数一起使用 不要忘记添加对“Microsoft VBScript正则表达式5.5”的引用
“这是一个日期,2016年1月23日Stackoverflow!”
“这是2016年8月27日的日期格式。”
“2017年3月22日也是一个日期。”
2016年1月23日
2016年8月27日
2017年3月22日
请帮忙。谢谢@pᴇ注释中共享的ʜRegex模式完全符合您的示例。下面是如何将其与单元内函数一起使用 不要忘记添加对“Microsoft VBScript正则表达式5.5”的引用
函数simpleCellRegex(Myrange作为范围)作为字符串
Dim regEx作为新的RegExp
作为字符串的Dim strPattern
像弦一样的模糊的条纹
作为字符串的暗输出
暗匹配作为对象
10.Tcrpattern:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;月月月月月月月月月月月月月月月月月124;十月;十月;十月;十月124:::::::::::::::::::::::::::::::}.[0-9]{1,2}.[0-9]{2,4}”
如果strPattern“”则
strInput=Myrange.Value
用正则表达式
.Global=True
.MultiLine=True
.IgnoreCase=False
.Pattern=strPattern
以
如果正则表达式测试(strInput),则
Set matches=regEx.Execute(strInput)
如果匹配.Count 0,则simpleCellRegex=匹配.Item(0)
其他的
simpleCellRegex=“不匹配”
如果结束
如果结束
端函数
输入在A列,B列使用公式
=simpleCellRegex(A1)
测试
这将很难做到,但正则表达式可能是你最好的选择。你打算使用VB.NET还是VBA?这是两种完全不同的语言。请在标签上注明。此外,这是没有免费的代码编写服务,因此,你应该显示你已经尝试了迄今为止。此链接可能会有所帮助:与这样的模式结合使用:可能会尝试一下,如果遇到问题,请返回代码并向代码提问。@Pᴇʜ您提供的模式非常有效。谢谢。谢谢。它很有效。。
Function simpleCellRegex(Myrange As Range) As String
Dim regEx As New RegExp
Dim strPattern As String
Dim strInput As String
Dim strOutput As String
Dim matches As Object
strPattern = "(?:January|Februrary|March|April|May|June|July|August|September|October|November|December) [0-9]{1,2}, [0-9]{4}|[0-9]{1,2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2,4}|[0-9]{1,2}.[0-9]{1,2}.[0-9]{2,4}"
If strPattern <> "" Then
strInput = Myrange.Value
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(strInput) Then
Set matches = regEx.Execute(strInput)
If matches.Count <> 0 Then simpleCellRegex = matches.Item(0)
Else
simpleCellRegex = "Not matched"
End If
End If
End Function