我刚刚开始在VBA工作了一些,所以也许它有点愚蠢,但是如果你能帮助我发现它会很棒。问题在于我试图计算产品类型出现的次数。由于使用不同来源的性质,类型并不总是具有完全相同的格式。在我的情况下,我对所有包含子串" etf"的所有类型感兴趣。当我调用InStr()时,它总是返回1,也就是起始位置,所以函数正在考虑字符串" etf"没有任何东西或零长度(根据Microsoft Documentation)。我不明白为什么。任何帮助将非常感激。
InStr()调用如下InStr(1, LCase(Sheets(ws).Cells(i, columnOfInterest).Value), "etf", 0)
其中ws
是工作表名称,i
是行指示符(来自for循环),columnOfInterest
是包含产品类型的列。
答案 0 :(得分:0)
更新,想通了。我曾经在我的Mac上工作过一次,并且出于某种原因,它提出了与vba期待的不同风格的引号。因此,它将“etf”视为无关或零长度。谢谢大家的快速回复。
如果其他人在稍后阶段阅读此内容,并且您遇到类似问题,请检查引号是否如下所示: $.ajax({
type: "POST",
url: url,
headers: {
'Token': 'your_token_here'
},
data: {
'body': 'value'
}
}).done(function (data) {
console.log("API call successfull : ", data);
});
答案 1 :(得分:-1)
试试这个:
InStr(LCase(Sheets(ws).Cells(i, columnOfInterest).Value), "etf")
将您的断点设置为此行,并确保Sheets(ws).Cells(i, columnOfInterest).Value
返回string
。
答案 2 :(得分:-1)
你还在尝试什么? 如果要查找实例数,请尝试这些行
try {
...
} catch(ApplicationError e) {
throw new RuntimeException(e);
}
如果你试图找到子字符串的位置,那么instr()应该可以正常工作