我是evaluate
的新手。因此,如果下面的代碼工作評價()不起作用
If Evaluate("=NOT(ISERROR(MATCH(" & temp & ",C:C,0)))") Then
爲什麼下面沒有這一項?
If Evaluate("=NOT(ISERROR(MATCH(" & c & ",sal,0)))") Then
temp是一個字符串,c是一個數組中的元素,它看起來也被存儲爲一個字符串。 C:C是活動頁面上的範圍。薩爾是一個單獨的工作表上的範圍。
Set wsSal = ThisWorkbook.Worksheets("Sal Sum")
Set sal = wsSal.Range("C17:C50")
我已經試過
If Evaluate("=NOT(ISERROR(MATCH(c ,sal,0)))") Then
,給了我一個運行時錯誤13類型不匹配。
由於不工作,前者進入if語句,後者不行。
因爲'sal'是你在代碼中定義的變量(比如''c'''''''''''''''''''''''''''' in'Evaluate'''''''' ,C:C,0))),但是匹配(「&temp&」,C:C,0)))' - 連接字符串以包含* temp *和'&',只要將它嵌入公式你只是傳遞一個無意義的單詞('sal'),這個方法無法解決,通過不使用'sal'來修復它,並且連接字符串'C17:C50'而不是像你一樣' temp'。 –
'If Evaluate(「= NOT(ISERROR(MATCH(」&c&「,」&sal&「,0)))」)Then'仍然失敗:/ – findwindow
閱讀我再次寫的內容。在你測試的時候對它進行編輯:-) –