LibreOffice Calc宏文本搜索

时间:2013-04-08 08:52:34

标签: string search macros calc

我需要帮助为LibreOffice Calc 3.6.2.2编写一个宏

我要做的是传递一个单元格号来运行,然后该函数分析单元格的内容(文本字符串)并根据其内容返回一个值。

我目前的代码:

Function mColor2(mCellAdd)

    Dim l(5) as String 'declare list of variables

    l(0)="red"
    l(1)="blue"
    l(2)="yellow"
    l(3)="green"


    for i=LBound(l) To UBound(l) 'cycle from start to end of list 

        If InStr(mCellAdd,l(i))<>0 Then
            mColor2=l(i)
        Else
            mColor2="not known" 
        End If

    Next        


End Function

但我只是“不知道”了。

我认为这是因为我没有正确处理从InStr()返回的值。

实际上我不确定我是否使用了正确的功能,因为我只需要检查单元格的内容是否包含我的子串......

结果的屏幕截图:

1 个答案:

答案 0 :(得分:0)

假设输入字符串(假设它是作为字符串传递的?)是“我的蓝狗”。然后你的函数将循环5次(应该是4?)。首先,它查找未找到的“红色”,因此mColor2设置为“未知”。然后它查找找到的“蓝色”,因此mColor2设置为“蓝色”。然后它查找“黄色”,并且mColor2被设置回“未知”。 “绿色”相同,然后当我4岁时我不知道它会是什么。

在任何情况下,您都不希望将mColor2重置为“未知”,只需删除您的Else。

如果输入字符串包含您要查找的多个字符串,您是否已决定该怎么做?你想在找到“红色”时立即退出,或者继续并记住找到的最后一个吗?