簡體   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