2017-05-22 29 views
0

我想通過下面的代碼加載求解:得到錯誤438,同時加載求解兩個手動以及通過VBA

Set r = Range("BC3") 
For i = 1 To 2 

    SolverReset 
    score = r.Value 

    If score = 1 Then 
     SolverLoad loadArea:=r.Offset(1).Resize(8) 
     SolverSolve UserFinish:=True 
     SolverFinish KeepFinal:=1 
     SolverReset 
     SolverLoad loadArea:=r.Offset(1, 1).Resize(11) 
     SolverSolve UserFinish:=True 
     SolverFinish KeepFinal:=1 
     SolverReset 
    Else: 
     SolverReset 
     SolverLoad loadArea:=r.Offset(1, 2).Resize(12) 
     SolverSolve UserFinish:=True 
     SolverFinish KeepFinal:=1 
    End If 

    Set r = r.Offset(43) 

Next i 

代碼給了我一個

錯誤438:對象不支持此屬性或方法。

的錯誤是在這一行:

SolverLoad loadArea:=r.Offset(1, 2).Resize(12) 

我嘗試手動加載相同的範圍內,這再次給了我同樣的錯誤。

注意:我在不同的Excel文件中成功加載了相同的數據!但是,當我更改文件並加載數據時,它給我一個錯誤。

如果有人知道原因,請幫助我。

+0

代碼沒有任何內在的錯誤,因爲它在2010年運行良好。 – Rory

+0

是啊,這就是我想知道的,因爲它在我的同一臺PC上的另一個Excel工作簿上運行良好!但它不會在這一個。我實際上是在一個單獨的工作簿中創建並運行代碼進行測試,然後將其移至我的原始工作簿,但無法運行。 –

+0

工作簿中是否有其他代碼 - 特別是事件代碼 - 或者您所指的工作表上的任何合併單元格? – Rory

回答

0

我有一個類似的問題。我發現我在複製工作表時保留了一些宏按鈕。我刪除了它們,並重新創建了它們,並給出了不同的名稱,問題解決了。