[英]Excel VBA - using left function with find
我正在尝试结合使用“查找”工作表函数“左”来确定VBA中的字符串变量。 但是,excel将find函数解释为VBA函数,在解析时会产生错误消息。
在我的代码下面:
...
Else
MSa = MSa & Left(Range("D22"), Find(".", Range("D22")) - 1) & " " & Range("D25").Value & "."
Range("Q7").Value = MSa
End If
...
其中MSa是字符串。 您能建议我如何最好地解决这个问题吗?
提前谢谢了。
简短的答案是使用Application.WorksheetFunction.Find
。 但是我不会使用它。 参见下文。
因此,在Sheet1上,我将abc.def
输入到单元格A1中。
在另一个单元格中,我输入=LEFT(A1,FIND(".",A1)-1)
并获得值abc
。
要在VBA中调用相同的函数,我会写
variable = Left(Sheet1.[A1],Application.WorksheetFunction.Find(".",Sheet1.[A1])-1)
但是,从VBA调用Excel工作表函数确实有一些缺点(调试起来较难且较慢)。 最好使用本机VBA函数InStr,该函数的工作原理与工作表函数Find相似。 参数的顺序不同,但结果相同。 所以我会写
variable = Left(Sheet1.[A1],InStr(Sheet1.[A1],".")-1)
为了使用工作表功能“ Find
您需要按以下方式完全限定它:
Application.WorksheetFunction.Find
在on和VBA上使用Find
会假定它是VBA函数。 match
。
InStr方法与工作表函数Find等效,要使用它:
MSa = MSa & Left(Range("D22"), InStr(Range("D22"), ".") - 1) & " " & Range("D25").Value & "."
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.