PUT「明示的なオプション」を失っています助け、それはあなたに解決する事を教えてくれますしてください。そうすることで、エラーの一部が修正され、ループの内側ではなくループの外側にある場合でも、ループカウンタを変更していないということはありません。代わりにこのコードを試してください。それは実際にはあなたがいくつかの小さな変更を加えたものとほとんど同じです。
Option Explicit
Sub test()
Dim sht As Worksheet, i As Long, l As Long, j
Dim nRows As Integer
Dim CurYear As Date
Dim StartDate As Date
Set sht = Worksheets("Test1") ' set the sheet as object isntead of selecting it for faster code and avoiding other issues
nRows = Cells(sht.Rows.Count, "B").End(xlUp).Row 'Last used row in column B - current region lastrow gets twitchy in some circumstances and should be avoided unless there is a reason to use it
l = 41
CurYear = range("I265").Value
StartDate = range("M5").Value
For i = 1 To nRows
If Cells(i, 1).Value < CurYear And Cells(i, 1).Value > StartDate Then 'for If statements you use "and" not "&"
Cells(l, 15) = Cells(i, 2) 'you will want something like this line and the next if you don't want to overwrite H41 if there is more than one match
l = l + 1
End If
Next i
End Sub
また、デバッグに役立つように、ローカルウィンドウを開きます(VBEで表示)。 F8を使用してコードをステップ実行し、ローカルウィンドウで変数を監視して、スクリプトのそのステップで期待されるものであることを確認します。
コードでこれを行うと、ループの変数にカウンタの変更がないことがわかります。だから、最終的には "nRow"を探していましたが、それは何に設定されていたとしても残っています。無限ループ。私はそれを次のフォーマットのために変更しましたが、1つは6つ、もう1つはあなたのコードに変更しました。
VBAへようこそ。目を逸らさないでください。 :-)
私はちょうど細胞(NROWS、1).Offset(0,1).VALUE =ワークシート( "週刊")させます。レンジ( "H41")。値、また – Lowpar
をコピー&ペーストする必要はありません、ループの前に終了する必要があります、私はcurrentregions.count.rowsでエラーが発生しています。 ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address) – Lowpar
デバッガでF8キーを押すと、どのセルがどのセルに表示されますか?クラッシュしていますか? – Lowpar