2016-07-14 7 views
0

私の問題は、次のとおりです。簡単なコードのエラー - エクセルVBAは

  • 私がイベントを表示し、それが行われたところシート「クロノ」に2列を持っています。イベントの開始日と終了日を2列追加する必要があります

この情報はすべて別のシート(「Projetos Novo」)にあります。 イベントの数は可変です。そのため、変数iを作成したのはそのためです。

私はそれはそれ実際にコピーする最初の6日付、その後クラッシュRun-time error '91': Object variable or With block variable not set

を表示されたコードを実行します。

私はあなたの親切な助けが必要です!

Sub Datas() 

Dim w As Long 
Dim t As Long 
Dim i As Long 


t = Sheets("Crono").Cells(Rows.Count, "A").End(xlUp).Row 


For i = 8 To t 

w = Sheets("Projetos NOVO").Range("C:C").Find(Sheets("Crono").Range("A" & i).Value).Row 


If Sheets("Projetos NOVO").Range("D" & w).Find(Sheets("Crono").Range("C" & i).Value).Row Then 


Sheets("Crono").Range("F" & i).Value = Sheets("Projetos NOVO").Range("R" & w).Value 
Sheets("Crono").Range("G" & i).Value = Sheets("Projetos NOVO").Range("S" & w).Value 

Else 

End If 

Next i 

End Sub 

`

答えて

0

あなたはRange変数と協力して、クロノからの値が見つかった場合(それが見つからない場合は、あなたが現在参照エラーになります)をテストする必要があります。

Sub Datas() 

Dim rng1 As Range 
Dim t As Long 
Dim i As Long 

t = Sheets("Crono").Cells(Rows.Count, "A").End(xlUp).Row 

For i = 8 To t 

Set rng1 = Sheets("Projetos NOVO").Range("C:C").Find(Sheets("Crono").Range("A" & i).Value) 
If Not rng1 Is Nothing Then 
    MsgBox rng1.Row 
Else 
    MsgBox Sheets("Crono").Range("A" & i).Value & " not found" 
End If 
+0

ありがとうございました。 問題は、私は別のシートに移動し、2つのセル(列RとS)から2つの値をコピーし、行番号は上記のようにw Iです。私の誤りは、私が推測すれば、上にある:\ –

+0

私はそれを十分に明確にしていない。 私の英語は申し訳ありません! しかし、私はこの行番号である必要がありますが、後でif –