C# 找不到与此c代码等效的VBA

C# 找不到与此c代码等效的VBA,c#,vba,C#,Vba,以下是c#代码: if(emailBody.Contains(“”) { emailBody=emailBody.Remove(0,emailBody.IndexOf(“”); if(emailBody.Contains(“”) { emailBody=emailBody.Remove(emailBody.IndexOf(“”+10); } } 我已将其更改为VBA,如下所示: If InStr(emailbody, "<CENTER>") > 0 Then emailb

以下是c#代码:

if(emailBody.Contains(“”)
{
emailBody=emailBody.Remove(0,emailBody.IndexOf(“”);
if(emailBody.Contains(“”)
{
emailBody=emailBody.Remove(emailBody.IndexOf(“”+10);
}
}
我已将其更改为VBA,如下所示:

 If InStr(emailbody, "<CENTER>") > 0 Then
 emailbody = emailbody.Remove(0, **emailbody**.IndexOf("<CENTER>")) ''COMPILE ERROR

    If InStr(emailbody, "</CENTER>") > 0 Then
     emailbody = emailbody.Remove(emailbody.IndexOf("</CENTER>") + 10)

    End If

End If
如果InStr(emailbody,”)>0,则
emailbody=emailbody.Remove(0,**emailbody**.IndexOf(“”)编译错误
如果InStr(emailbody“”)大于0,则
emailbody=emailbody.Remove(emailbody.IndexOf(“”+10)
如果结束
如果结束
但它不会编译在上面的行中给出错误:编译错误,无效的限定符。
有什么建议吗?

这将删除标签:

emailbody = Replace( emailbody, "<CENTER>", "" )
emailbody = Replace( emailbody, "</CENTER>", "" )
emailbody=Replace(emailbody,“,”)
emailbody=替换(emailbody,“,”)

我想您只想从emailBody中获取元素

si = InStr(emailBody, "<center>")
ei = InStr(emailBody, "</center>")
emailBody = Mid(emailBody, si, ei - si + 9)
si=InStr(emailBody,”)
ei=仪表(电子邮件正文“”)
emailBody=Mid(emailBody,si,ei-si+9)
下面的VBA代码相当于C#

如果InStr(emailBody,”)>0,则
emailBody=Mid(emailBody,InStr(emailBody,“”)
如果InStr(emailBody“”)大于0,则
emailBody=Mid(emailBody,1,InStr(emailBody,“”)+9)
如果结束
如果结束

emailbody是字符串吗?字符串在VBA中没有属性或方法。@Rob Yes它是一个字符串。如何实现上述功能?您可能想使用replace函数:和InStr:@Rob我想使用remove,因为我想删除从开始到结束的所有文本,replace只会替换部分文本。您必须将输入字符串转换为小写(使用“LCase”);在其当前版本中,它不适用于OP的输入。还要记住,OP的代码不仅仅检索标记之间的文本:“emailbody.IndexOf(“”+10)”超出“>”@confusedMind一个字符,它不能完美地工作。此代码不能提供C版本所能提供的功能。@varocabas。。。是的,参数在InStr函数中应该是大写的“CENTER”。应检查si和ei是否大于零。如果si>0且ei>0,则执行Mid()语句将提供C版本的功能。请更新您的代码:write InStr(LCase(emailBody),“”)。emailBody=Mid(emailBody,si,ei-si+9)应该改为emailBody=Mid(emailBody,si,ei-si+10),因为这是原始C#所做的(直到最后一个标记+一个字符…尽管OP似乎没有意识到)。请记住,这是为了让他人阅读;如果您声称(并且OP确认)某些代码提供了正确的转换C#->VBA,那么它应该是正确的。PS:记住这些函数不支持HTML指令;)@varocarbas,但它确实可以工作,即使在html中也可以。
si = InStr(emailBody, "<center>")
ei = InStr(emailBody, "</center>")
emailBody = Mid(emailBody, si, ei - si + 9)
If InStr(emailBody, "<CENTER>") > 0 Then
    emailBody = Mid(emailBody, InStr(emailBody, "<CENTER>"))
    If InStr(emailBody, "</CENTER>") > 0 Then
        emailBody = Mid(emailBody, 1, InStr(emailBody, "</CENTER>") + 9)
    End If
End If