2012-08-29 296 views
5

Excelで問題があり、参照番号を生成するフォームがあります。しかし、私が参照番号を生成しようとすると、実行時エラー '1004':オブジェクト'_Global 'の' Range 'メソッドが失敗しました

実行時エラー「1004」:それはエラーメッセージと言ってい私はデバッグボタンをクリックするとobject'_Globalのメソッド「範囲は」」

を失敗し、それは以下のようにコードを示します:

それは誰もがこの問題で私を助けることができるコード

Sub clearTemplate() 
    ' Clear Template Content 
    Range(inputTemplateHeader) = NO_ENTRY 
    Range(inputTemplateContent) = NO_ENTRY  - (highlighted error) 
End Sub 

Sub clearRefNo() 
    ' Clear cell G2 reference number 
    Range(cellRefNo) = NO_ENTRY 

    ' Open "Report_ref_no.xls" 
    If Not (IsFileOpen) Then Workbooks.Open filename:=ThisWorkbook.Path & "\" & FACCESS 

    ' Activate "Report_ref_no.xls" 
    Windows(FACCESS).Activate 

    ' Access column D 
    Range(cellFirstRefNo).Select 
    Selection.End(xlDown).Select 

    If refNo = Cells(ActiveCell.Row, ActiveCell.Column - 1).Value Then 
     ' Log Development Code column 
     Cells(ActiveCell.Row, ActiveCell.Column) = NO_ENTRY 

     ' Log Issuer column 
     Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = NO_ENTRY 

     ' Log Date column 
     Cells(ActiveCell.Row, ActiveCell.Column + 2).Value = NO_ENTRY 
    End If 

    ' Save & Close workbook 
    ActiveWindow.Close True 
End Sub 

の4行にエラーを強調しましたか?何が間違っているのか分かりません。

+3

エラーが発生したときの 'inputTemplateContent'と' NO_ENTRY'の値は何ですか? 'Set Range(inputTemplateContent)= NO_ENTRY'で動作しますか? – assylias

+0

誰もが同じ問題を抱えている場合:ブックとシートを指定するRangeを使用してこのエラーで終わった場合、小切手の本の名前に空白が含まれていない(おそらくそれは明らかですが、レガシーマクロがあり、 Excelの場合はこれが難しいかもしれません)。 – EAmez

答えて

21

範囲を参照しているときは、範囲が指定されているシートを具体的に指定していないため、非修飾参照と呼ばれます。非修飾参照は、どのオブジェクトを参照しているかを判断する "_Global"オブジェクトによって処理され、コードがどこにあるかによって異なります。

標準モジュールを使用している場合、範囲外の範囲ではアクティブシートを参照します。シートのクラスモジュールを使用している場合、範囲外のRangeはそのシートを参照します。

inputTemplateContentは、範囲(おそらく名前付き範囲)への参照を含む変数です。その名前付き範囲のRefersToプロパティを見ると、コード実行時のActivesheet以外のシートを指している可能性があります。

この問題を解決する最も良い方法は、シートを指定して範囲外の範囲参照を避けることです。同様

With ThisWorkbook.Worksheets("Template") 
    .Range(inputTemplateHeader).Value = NO_ENTRY 
    .Range(inputTemplateContent).Value = NO_ENTRY 
End With 

特定の状況に合わせてワークブックとワークシートの参照を調整します。

関連する問題