2017-07-10 12 views
0

シート、シート1、シート2、シート3が3つあります。 sheet3は一般に結果シートと見なされます。行の範囲を定義する際にエラーが発生しました

最初の手順では、sheet1列Nをsheet3列Eにコピーします。同様に、sheet1の列Fをsheet3の列Hにコピーします。

列をコピーした後、列Eのsheet3のIDと、sheet2の列AのIDを比較したいと考えました。一致する場合は、シート3に印刷され、その他の相対列の詳細はオフセット機能で印刷されます。

私は新しいシートデータでシート2を更新し、コードは突然実行を停止しました。エラーは発生していません。

プログラムは単に実行を継続し、停止しません。私がデバッグすると、私は、下の行が強調表示されていることがわかりました。

ないRNGは次に何

追加の情報がない場合:最初の3行が合併しButtons.theデータがROW5から開始したと私は、シート1で118行を持っています。 私はsheet2に990の行を持ち、row5から始まるデータをsheet1に似ていますが、ボタンもあります。 誰かがこの問題を解決するのに役立つでしょうか。私はすでに問題を投稿しており、肯定的な回答は見つかりませんでした。この問題を解決するためにフォーラムのメンバーが必要です。

Sub lookup() 
Dim lrow As Long 
Dim Totalcolumns As Long 
Dim rng As Range 
Dim rng1 As Range 
Dim rng2 As Range 
Dim i As Long 
'Copy lookup values from sheet1 to sheet3 
ThisWorkbook.Sheets("S1").Select 
totalrows = ActiveSheet.UsedRange.Rows.Count 

Range("N5:N" & totalrows).Copy Destination:=Sheets("S3").Range("E5") 
Range("F5:F" & totalrows).Copy Destination:=Sheets("s3").Range("H5") 
'Go to the destination sheet 
Sheets("s3").Select 
For i = 5 To totalrows 
'Search for the value on sheet2 
Set rng = Sheets("s2").UsedRange.Find(Cells(i, 5).Value) 
'If it is found put its value on the destination sheet 
If Not rng Is Nothing Then 
Cells(i, 6).Value = rng.Value 
Cells(i, 1).Value = rng.Offset(0, 1).Value 
Cells(i, 2).Value = rng.Offset(0, 2).Value 
Cells(i, 3).Value = rng.Offset(0, 3).Value 
Cells(i, 4).Value = rng.Offset(0, 9).Value 
Cells(i, 9).Value = rng.Offset(0, 10).Value 
Cells(i, 12).Value = rng.Offset(0, 6).Value 
Cells(i, 13).Value = rng.Offset(0, 5).Value 
Cells(i, 14).Value = rng.Offset(0, 8).Value 
End If 
Next i 
End Sub 
+0

実行時に 'totalrows'の値は何ですか?おそらくあなたが期待しているものではありません。 – braX

+0

@braX in sht1私は118までのデータでいっぱいの行しか持っていませんが、それは65452 – Mikz

+0

@braXです。どうすれば修正できますか? – Mikz

答えて

1

このようなものはありますか?

lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row 
+0

ありがとう、私は朝からこれで苦労していました。 – Mikz

関連する問題