我用于从括号中提取信息的VBA代码返回类型不匹配,但我不太清楚为什么.

use*_*971 0 excel vba

我编写了以下脚本来区分范围内的"<"和">"之间的字符.

我有的是:

 Dim Rng As Range
 Dim i As Long
 i = 2
 While i <= 20000

 Set Rng = Range("B" & i)

 If InStr(Rng, "<") = 0 Then
 i = i + 1

 ElseIf InStr(Rng, "<") > 0 Then
 Rng.Offset(0, 1).FormulaR1C1 = "=mid(left(RC[-1],find(" > ",RC[-1])-1),find(" < ",RC[-1])+1,len(RC[-1]))"
 i = i + 1
 Else: i = i + 1
 End If
 Wend
 End Sub
Run Code Online (Sandbox Code Playgroud)

当我用更简单的东西替换长公式时,这很有效.然而,当我运行它时,我得到了类型不匹配.我有一种感觉,我错过了一些非常简单的事情.有什么建议?

谢谢

Ale*_* K. 5

""quoted"字符串中的引号需要转义(通过加倍),如果它们不是编译器如何知道字符串真正结束的位置?

FormulaR1C1 = "=mid(left(RC[-1],find("" > "",RC[-1])-1),find("" < "",RC[-1])+1,len(RC[-1]))"
Run Code Online (Sandbox Code Playgroud)

(在您当前的代码中<,>在字符串之外,因此被解释为GT/LT运算符)