2016-02-26 61 views
-1

我在單元格中有一個IFERROR公式(假設爲A1),它在出現錯誤時返回「」。因此,當發生錯誤時,單元格爲「空白」。當我嘗試使用該單元格的值時,例如通過執行Cells(1,1)=Cells(1,1).Value+1,我得到一個Type Missmatch錯誤。如果我刪除公式並將單元格留空,那麼我不會得到那個錯誤。有人知道爲什麼會發生這種情況嗎?使用具有公式的單元格的值返回類型錯過匹配

+0

因爲在輸入一個空字符串(這是一個字符串)和一個空白單元格(默認等於0)之間存在差異。 –

+0

根據你的IFERROR公式,空白單元格的值不是一個數字。所以'「」+ 1'導致類型不匹配。 – miroxlav

+1

最好的事情是將0而不是「」。那麼你不會有這個問題。 –

回答

1

"" + 1不被VBA接受,因爲一個是字符,一個是數字。

您可以:

  • 擁有的,而不是 「IFERROR返回0」 以避免類型不匹配
  • 使用if語句來檢查 「」:

    If Cells(1,1) = "" Then 
        Cells(1,1) = 1 
    Elseif IsNumeric(Cells(1,1)) Then 
        Cells(1,1) = Cells(1,1).Value + 1 
    End If 
    
  • 轉換「 「爲0:

    Cells(1,1) = Val(Cells(1,1).Value) + 1 
    
+0

還有其他方法嗎?像將字符串轉換爲數字一樣? –

+0

'如果Cells(1,1)=「」Then Cells(1,1).Value = 0' - 類似的東西? – teepee

+0

我在想內置函數... –

相關問題