我正在尝试将工作表函数“left”与“find”结合使用来确定 VBA 中的字符串变量。但是,excel将find函数解释为VBA函数,在解析时会产生错误信息。
在我的代码下面:
...
Else
MSa = MSa & Left(Range("D22"), Find(".", Range("D22")) - 1) & " " & Range("D25").Value & "."
Range("Q7").Value = MSa
End If
...
Run Code Online (Sandbox Code Playgroud)
其中 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)
Run Code Online (Sandbox Code Playgroud)
但是,从 VBA 调用 Excel 工作表函数确实有一些缺点(调试起来更困难且速度更慢)。最好使用本机 VBA 函数 InStr,它的工作方式与工作表函数 Find 非常相似。参数的顺序不同,但结果是一样的。所以我会写
variable = Left(Sheet1.[A1],InStr(Sheet1.[A1],".")-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15013 次 |
| 最近记录: |