-1

問題があります。VBAExcelを使用してMatlabを呼び出すためのコードがわかりません。

使ってみました

matlabinit

しかし、実行した後は機能せず、エラーメッセージが表示されました"sub or function not defined

ああ、私はこのコードを持っていますが、実行できません。

Sub jadwal()
'*************************************************************
'Unprotect sheets
'*************************************************************
Sheets("Hasil_jadwal_baru").Select
ActiveSheet.Unprotect
'*************************************************************
'Clear the previous schedule
'*************************************************************
Sheets("Hasil_jadwal_baru").Select
Range("A1:CG14").Select
Selection.ClearContents
'*************************************************************
'Clear the previous variable in MATLAB and set up the application
'*************************************************************

Application.DisplayAlerts = False
Application.Run "matlabinit"
MLEvalString "clear;"
MLEvalString "clc;"
'*************************************************************
'Send input to MATLAB
'*************************************************************
MLPutMatrix "ic_april", Range("ic_april")
MLPutMatrix "ic_juni", Range("ic_juni")
MLPutMatrix "ic_sept", Range("ic_sept")
MLPutMatrix "ic_libur_april", Range("ic_libur_april")
MLPutMatrix "ic_libur_juni", Range("ic_libur_juni")
MLPutMatrix "ic_libur_sept", Range("ic_libur_sept")
'*************************************************************
'Solve the problem via MATLAB and LP-SOLVE
'*************************************************************
MLEvalString "fixuntukmin"
'*************************************************************
'Send the result to EXCEL
'*************************************************************
MLGetMatrix "hasil_jadwal", "Hasil_jadwal_baru"
MatlabRequest
'*************************************************************
'Close MATLAB
'*************************************************************
MLClose
MLAutoStart "no"
Application.DisplayAlerts = True

'*************************************************************
'Finish Alarm
'*************************************************************

'*************************************************************
'Reprotect sheets
'*************************************************************
Sheets("Hasil_jadwal_baru").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True

End Sub

手伝って頂けますか??

4

1 に答える 1

0

VBAコードにスプレッドシートリンクEXへの参照を追加する必要があるようです。[ツール]->[参照]を選択し、スプレッドシートリンクのEXライブラリにチェックマークを付けます。その後、それは動作するはずです。

または、application.runを使用して、参照を追加せずにアドイン関数を呼び出すこともできます。だから試してみてください application.run "matlabinit"。ただし、この場合、matlabを呼び出すスプレッドシートを配布する可能性は低いため、参照を追加することをお勧めします。

また、アドインがインストールされていることを確認しましたか?Excel 2010では、[開発者]タブをクリックし、(大きな金色の歯車のアイコンが付いた)アドインを選択し、Matlabで使用するSpreadsheet Link ExVer...にチェックマークを付けます。次に、VBAに移動し、上記のように参照を追加します。

于 2012-08-14T06:54:40.723 に答える