Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA解决方案,用于删除除dd mmm yyyy之外的所有文本;嗯-yyyy@Basic_Excel_Date - Fatal编程技术网

Excel VBA解决方案,用于删除除dd mmm yyyy之外的所有文本;嗯-yyyy@Basic

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

因此,excel中的一列在单元格中包含数据,该单元格包含订阅数据、开始日期和结束日期数据

例如:

2017年11月14日;2018年1月8日;中期,2018年1月11日;;基本,2018年1月12日;;基本的


我想删除2017年11月14日的;2018年1月8日;在本例中选择中间值,并使用基本值及其日期保存任何内容。还可以在每个数据块之间分隔值。

假设有两种情况:

  • 我们要保留/替换的块用逗号分隔
  • 我们希望保留的块的形式总是
    ;;基本
  • 在excel中,按Ctrl+F11打开VBE(我们在其中编写VBA或“宏”) 在工作簿左上角的Project VBA项目窗格中,右键单击并选择“插入>>模块”。这将在Modules文件夹中创建Module1

    现在粘贴到以下自定义项中:

    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答案。