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