2016-07-15 71 views
0

VBA相當新,但我有以下函數直到Workbooks(PDwb).Sheets(「pivotdata」)。Range(「E2」)。Value =「ON -HAND「然後返回一個Tpye不匹配錯誤。當將字符串返回值時,VBA類型不匹配

完整的代碼檢查一個單元格從一個不同的工作簿,所以我不知道是否導致錯誤。

Function IfCheck(Cell As Variant) 

    If Cell = "ON_HAND" Or Cell = "ON HAND" Then 
     Set PDwb = ActiveWorkbook 
     Workbooks(PDwb).Sheets("pivotdata").Range("E2").Value = "ON-HAND" 
    Else 
     Set PDwb = ActiveWorkbook 
     Workbooks(PDwb).Sheets("pivotdata").Range("E2").Value = Cell 
    End If 

    Set BOwb = ActiveWorkbook 

End Function 

我不能爲我的生活工作做出怎樣的改變:S

非常感謝,

回答

2

Workbooks(PDwb)功能需要字符串參數。但PDwb已經是工作手冊。

嘗試

PDwb.Sheets("pivotdata").Range("E2").Value = "ON-HAND" 
+0

感謝Fraty似乎已經清除它,但現在我得到一個下標超出範圍的錯誤。 – Dwhite

+0

您確定工作簿中有一張名爲「pivotdata」的工作表嗎? – Fratyx

+0

爲了解決這個問題,我把這個功能移到了sub中,並從那裏運行它。謝謝您的幫助 – Dwhite

相關問題