Excel VBA解决方案,用于删除除dd mmm yyyy之外的所有文本;嗯-yyyy@Basic
因此,excel中的一列在单元格中包含数据,该单元格包含订阅数据、开始日期和结束日期数据 例如: 2017年11月14日;2018年1月8日;中期,2018年1月11日;;基本,2018年1月12日;;基本的Excel VBA解决方案,用于删除除dd mmm yyyy之外的所有文本;嗯-yyyy@Basic,excel,date,Excel,Date,因此,excel中的一列在单元格中包含数据,该单元格包含订阅数据、开始日期和结束日期数据 例如: 2017年11月14日;2018年1月8日;中期,2018年1月11日;;基本,2018年1月12日;;基本的 我想删除2017年11月14日的;2018年1月8日;在本例中选择中间值,并使用基本值及其日期保存任何内容。还可以在每个数据块之间分隔值。假设有两种情况: 我们要保留/替换的块用逗号分隔 我们希望保留的块的形式总是;;基本 在excel中,按Ctrl+F11打开VBE(我们在其中编写VBA
我想删除2017年11月14日的;2018年1月8日;在本例中选择中间值,并使用基本值及其日期保存任何内容。还可以在每个数据块之间分隔值。假设有两种情况:
;;基本
Function cleancell(strCell As String) As String
For Each el In Split(strCell, ",")
If IsDate(Split(el, ";")(0)) And Split(el, ";")(2) = "Basic" Then
cleancell = IIf(cleancell = "", cleancell, cleancell & ",") & el
End If
Next
End Function
这将为工作簿提供一个新的自定义公式(用户定义的公式)。保存工作簿以确保UDF已准备就绪
假设您拥有2017年11月14日的价值;2018年1月8日;中期,2018年1月11日;;基本,2018年1月12日;;基本
在单元格A1
中,然后在A2
中可以使用新公式:
=cleancell(A1)
这将吐出:
11-Jan-2018;;Basic, 12-Jan-2018;;Basic
使用中:
我觉得您可以在Windows powershell上使用正则表达式来完成这一任务。试一试,用更具体的方式再次提问。要保留或删除的不同“块”是否总是用逗号分隔?是保留其中一个块的标准,它必须采用
dd mon yyyy;;基本的
?当你说“禁止编程”时,你是不是也在说禁止VBA?它们总是以昏迷分开。我甚至不知道VBA是什么,直到我查了一下,从某种意义上说,我可以给出我的答案。更改了我的问题,现在我更喜欢vba答案。