Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
如何在vba excel中拆分带有多个分隔符的字符串并连接部分?_Excel_Vba_Excel Formula - Fatal编程技术网

如何在vba excel中拆分带有多个分隔符的字符串并连接部分?

如何在vba excel中拆分带有多个分隔符的字符串并连接部分?,excel,vba,excel-formula,Excel,Vba,Excel Formula,大家好 我想就以下几点提出一些意见 我有一个函数,可以拆分字符串的各个部分,并将一位数转换为两位数。 该函数使用“.”作为分隔符,然后通过不同的分隔符再次连接各部分 当我调用该函数时,我只需将=OutlinerC3添加到单元格中,我希望进行格式化 一切都很美好。如果我输入14.1.1.1,函数返回14-01-01-01,这正是我需要它做的 现在出现了一个新的场景,我得到的数字是14.1.1-1,现在函数返回14-01-01-43831,这不是我想要的。我还是想要14-01-01-01 是否有一个

大家好

我想就以下几点提出一些意见

我有一个函数,可以拆分字符串的各个部分,并将一位数转换为两位数。 该函数使用“.”作为分隔符,然后通过不同的分隔符再次连接各部分

当我调用该函数时,我只需将=OutlinerC3添加到单元格中,我希望进行格式化

一切都很美好。如果我输入14.1.1.1,函数返回14-01-01-01,这正是我需要它做的

现在出现了一个新的场景,我得到的数字是14.1.1-1,现在函数返回14-01-01-43831,这不是我想要的。我还是想要14-01-01-01

是否有一个简单的功能修复。我在下面添加了代码

Function Outliner(S As String) As String
  Dim x As Long, Parts() As String
  Parts = Split(S, ".")
  For x = 0 To UBound(Parts)
    Parts(x) = Format(Parts(x), "00")
  Next
  Outliner = Join(Parts, "-")
End Function
替换

Parts = Split(S, ".")

替换

Parts = Split(S, ".")


由于您还标记了Excel公式,我将向您展示一种使用Excel-2019以后提供的本机函数的可能性:

B1中的公式:


如果有Excel 2019,则需要输入CSE。对于microsoft365,这将自动完成。

由于您还标记了Excel公式,我将向您展示一种使用Excel-2019以后提供的本机函数的可能性:

B1中的公式:


如果有Excel 2019,则需要输入CSE。对于microsoft365,这将自动完成。

似乎您缺少圆点周围的引号。否则我认为它应该这样做。在哪里@斯尼科劳;你在我写评论时编辑了它。现在一切都好了。看来你漏掉了圆点周围的引号。否则我认为它应该这样做。在哪里@斯尼科劳;你在我写评论时编辑了它。现在一切都好了。
=TEXTJOIN("-",,TEXT(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,"-","."),".","</s><s>")&"</s></t>","//s"),"00"))