スプレッドシート モジュールから、別のシートで何らかの処理を行い、整数を返す関数を呼び出します。次に、関数が呼び出されたシートのセルにその整数を書き込みたいと思います。エラー 400 が表示されました。シート間の切り替えが正しく処理されていないと思います。
それを手伝ってくれませんか?
Function lastNonZero(Rng As Range) As Integer
i = 19
Do While ActiveCell.Value = 0
ActiveCell.Offset(0, -1).Activate
i = i - 1
Loop
lastNonZero = i
End Function
シート A のモジュールにあるサブから抽出します。
For j = startRow To startRow + (nRows - 1)
Worksheets("B").Select
Range("Y" & j).Activate
k = lastNonZero(Worksheets("B").Range("Y" & j))
Worksheets("A").Range("BZ" & j) = k
Next j