繁体   English   中英

Excel VBA-将左功能与find一起使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM