シート、シート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
実行時に 'totalrows'の値は何ですか?おそらくあなたが期待しているものではありません。 – braX
@braX in sht1私は118までのデータでいっぱいの行しか持っていませんが、それは65452 – Mikz
@braXです。どうすれば修正できますか? – Mikz