Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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中的分析列表?_Excel_Vba_Excel Formula - Fatal编程技术网

Excel VBA中的分析列表?

Excel VBA中的分析列表?,excel,vba,excel-formula,Excel,Vba,Excel Formula,我不太熟悉如何将数据分类为数组,并使用excel对其进行解析 下面是我尝试做的一个例子: 单元格A1具有[“1”、“2”、“3”] 我正在尝试创建一个公式,将其转化为 <aa>1</aa><aa>2</aa><aa>3</aa> 123 我不知道如何将单元格A1转换为数组,以便VBA循环。只是手动解析了它。如果有人有更好的方法,我想学习。谢谢 Function ParseList(str As String)

我不太熟悉如何将数据分类为数组,并使用excel对其进行解析

下面是我尝试做的一个例子:

单元格A1具有
[“1”、“2”、“3”]

我正在尝试创建一个公式,将其转化为

<aa>1</aa><aa>2</aa><aa>3</aa>
123

我不知道如何将单元格A1转换为数组,以便VBA循环。

只是手动解析了它。如果有人有更好的方法,我想学习。谢谢

Function ParseList(str As String)
    
    str = Replace(str, Chr(34), "")
    str = Replace(str, "[", "")
    str = Replace(str, "]", "")
    
    Dim LArray() As String
    Dim result As String
    
    LArray = Split(str, ",")
    
    For Each word In LArray
        ParseList = ParseList & "<aa>" & word & "</aa>"
    Next word
End Function
函数解析列表(str作为字符串)
str=替换(str,Chr(34),“”)
str=Replace(str,“[”,“”)
str=Replace(str,“]”,“”)
Dim LArray()作为字符串
将结果变暗为字符串
LArray=拆分(str,“,”)
对于LArray中的每个单词
ParseList=ParseList&&word&
下一个词
端函数

不需要VBA。在单元格
B1
中粘贴此公式:

=SUBSTITUTE(SUBSTITUTE(MID(A1,2,LEN(A1)-2)&",",""",","</aa>"),"""","<aa>")
=替换(替换(中间(A1,2,LEN(A1)-2)和“,”,“,”,“,”,”),“,”,”)
下面是根据@JvdV的评论构建的略短版本。它使用的函数调用少了一个。。。但还有一个字符串连接

="<aa>"&SUBSTITUTE(MID(A1,3,LEN(A1)-4),""",""","</aa><aa>")&"</aa>"
=“”&替换(中间(A1,3,透镜(A1)-4),“”,“”,“”,“”)和“

Debug.Print”“&Join(计算(替换(替换范围(“A1”).Value,“[”,“{”),“]”,“}”),“)&”“
@JvdV您的公式在结果中留下了几个引号。它不能正常工作。@JvdV我为您修复了它:
=”&SUBSTITUTE(MID(A1,3,LEN(A1)-4),“,”,“,”)&
在翻译引擎中那些Trippe引号丢失的地方。=)@阿尔奇,请接受这个答案。