temps(X) = "set port name *** DESCRIPTION *** *** PORT *** "
first = InStr(temps(x), "***") ' find start postition
last = InStr(InStr(1, temps(x), "***") + 1, temps(x), "***") 'find end
snip = Mid(temps(x), first, last)
MsgBox (snip)
为什么这会导致输出
***说明*** *** PORT **
而不是预期的***描述***
干杯
亚伦
答案 0 :(得分:4)
instr
将参数设为string
,startpos
,len
...因此您失败了,因为您假设参数为:string
, startpos
,endpos
。
您可以通过以下方式修复代码:
snip = Mid(temps(x), first, last - first)
还要注意你的构造:
last = InStr(InStr(1, temps(x), "***") + 1, temps(x), "***")
可以写得更简单。请注意,当您获得Instr(1, temps(s), "***")
的值时,您已经完成了first
一次,因此您可以将该行重写为更简单的行:
last = InStr(first + 1, temps(x), "***")