2017-11-29 5 views
1

ダイナミックレンジを定義するマクロを実行しています。私が苦労しているのは、動的範囲が特定の範囲を参照するかどうかをテストするIF文を組み込むことです。私は以下で試しているが、 'Run-type error' 13 ':Type-mismatch'が表示されます。誰かがこれに何が間違っているか教えてもらえますか?その後、私は「ファイル名を指定して実行時エラー1004」を取得L217:テストIFダイナミックレンジは特定の範囲を指します

Sub TestTwo() 

Dim colRange As Long 
Dim rowRange As Long 
Dim rngMain  As Range 

rowRange = 10 

    With Worksheets(1) 
    colRange = .Cells(10, 12).End(xlToLeft).Column 
    Set rngMain = .Range(.Cells(rowRange + 200, colRange + 1), .Cells(217, 12)) 
    Range("L210:L217").FormulaR1C1 = "=+R[-60]C-R[-60]C[-1]" 
    If Not rngMain = Range("L210:L217") Then Range("L210:L217").AutoFill Destination:=rngMain, Type:=xlFillDefault 
    End With 
End Sub 

私は「rngMainは」とは何をテストしたい理由は、ケースにrngMainはL210を参照することで、アプリケーション定義または定義されたオブジェクトエラー」そうでないコード実行する必要があります。

ご協力いただきありがとうございます。

+1

おそらく 'ない場合はrngMain.address = "$ L $ 210:$ L $ 217"'​​。それ以外の場合は、値を比較しようとしています(検索したとおりに動作しません)。 – SJR

+0

完璧、ありがとう! rngMainが最初にL210:L217を参照しているときに、「ランタイムエラー1004」:アプリケーション定義または定義されたオブジェクトエラーが発生する理由を知っていますか? –

+0

@SJRあなたは私にそれを打つ。 +1 –

答えて

-1

私はあなたの代わりに値のそこの参照を比較していると思う、あなたが試すことができます:

If Not rngMain.Address = "$L$210:$L$217" Then Range("L210:L217").AutoFill Destination:=rngMain, Type:=xlFillDefault 

しかし、どのような彼らの選択は、その範囲の一部を含むその範囲内または場合、彼らは唯一の単一のセルを選択した場合は?あなたがしたい場合は、その選択はL210:L217と交差する場合、あなたもチェックすることができます。

If Intersect(rngMain,Range("L210:L217")) Is Nothing Then Range("L210:L217").AutoFill Destination:=rngMain, Type:=xlFillDefault 
関連する問題