2017-05-22 22 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

私も同様の問題がありました。私は、シートをコピーしたときに私が保持していたマクロボタンがあることを知りました。私はそれらを削除し、再び別の名前を付けて作成し、問題は解決されました。

関連する問題