-2

(編集:その後の編集で、投稿者は問題が解決され、スペルミスが原因であると宣言し、質問テキスト全体を削除しました。このコメントを追加してテキストを復元しました)


スケジュールする必要のあるマクロが2つあります。

Macro1"GetData"-これは35分ごとに実行する必要があります-私のDBからデータを取得します。Macro2 "RefreshData"-これは、GetDataが完了した後1分ごとに実行する必要があります-データを更新します。

私が試してみました:

Private Sub workbook_open()

Application.OnTime Now + TimeValue("00:35:10"), "GetData"
Application.OnTime Now + TimeValue("00:01:00"), "RefreshData"

End Sub

ただし、次のように表示されます。

"マクロを実行できません"c:\ document and settings \ alex \ desktop \ data.xlsm'!GetData' /このワークブックでマクロが使用できないか、すべてのマクロが無効になっている可能性があります "

Sub GetData ()

'' GetData ///////////////////////////////////////////////////////////////////////

Dim sh1 As Worksheet, data As Worksheet

Set sh1 = Worksheets("Sheet1")

Set data = Workbooks.Open(Filename:="C:\Documents and Settings\alex\Desktop\source.XLS"). _
    Worksheets("Report 1")

Sheets("Report 1").Select
Set Rng = Sheets("Report 1").Range("A2:K350")
Selection.Copy

sh1.Activate
Rng.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Sheet1").Range("A2")

portfolioName.Activate
ActiveWorkbook.Close

End Sub

Sub RefreshData()

MsgBox ("-- Update every 1min --")

End Sub

助けていただければ幸いです。

- アップデート - - - -

これで、別のGetDataモジュールを作成しました。

Private Sub workbook_open()

Application.OnTime Now + TimeValue("00:35:10"), "GetData"
'Application.OnTime Now + TimeValue("00:01:00"), "RefreshData"

End Sub

Public Sub GetData()
'' GetData ///////////////////////////////////////////////////////////////////////
....
....
End Sub

それでも同じエラーが発生します。

- アップデート - - -

わかりました、Sheet1内に私は持っています:

Public Sub workbook_open()

Application.OnTime Now + TimeValue("00:35:10"), "GetData"
'Application.OnTime Now + TimeValue("00:01:00"), "RefreshData"

End Sub

これで、[挿入]> [モジュール]が作成され、モジュールの名前がGetDataに変更されました。

そのGetDataモジュール内に私は持っています:

Public Sub GetData()
'' GetData ///////////////////////////////////////////////////////////////////////
....
....
End Sub

コメントは大歓迎です

4

1 に答える 1

1

OnTimeでは、参照されるマクロが標準モジュールに含まれている必要があります。subもパブリックである必要があります。これはモジュールのデフォルトです。モジュールを挿入し、GetDataとRefreshDataをその中に移動します。

于 2012-09-17T13:30:51.673 に答える