我需要帮助为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()返回的值。
实际上我不确定我是否使用了正确的功能,因为我只需要检查单元格的内容是否包含我的子串......
结果的屏幕截图:
答案 0 :(得分:0)
假设输入字符串(假设它是作为字符串传递的?)是“我的蓝狗”。然后你的函数将循环5次(应该是4?)。首先,它查找未找到的“红色”,因此mColor2设置为“未知”。然后它查找找到的“蓝色”,因此mColor2设置为“蓝色”。然后它查找“黄色”,并且mColor2被设置回“未知”。 “绿色”相同,然后当我4岁时我不知道它会是什么。
在任何情况下,您都不希望将mColor2重置为“未知”,只需删除您的Else。
如果输入字符串包含您要查找的多个字符串,您是否已决定该怎么做?你想在找到“红色”时立即退出,或者继续并记住找到的最后一个吗?