紳士、次のループの問題のために
私は小さな問題で苦労し、彼らのためにクレージーを取得します。私は本当にあなたのアドバイスを感謝します。
私はブックに「najemcy」というワークシートを持っています。このワークシートでは、A2 = 3、A7 = 2、A12 = 1です。以下のセルがマージされます。A2:A6、A7:A11、A12:A16列Gには、G2 = 550、G3 = 55、G7 = 650、G8 = 11G12 = 550という値がある。
マクロは、範囲A2:A6、A7:A11、A12:A16の最後の値を見つける必要があります。つまり、アドレスが$ G $ 4、$ G $ 8、$ G $ 12ですが、$ G $ 12の代わりに$ G $ 1048576というメッセージボックスを3回受け取ることを意味します。
Public Sub helpMe()
Dim najemcy As Worksheet
Dim pokoj As Range
Dim pokNr As Integer
Dim obecnyLok As Range
For pokNr = 3 To 1 Step -1
Set najemcy = Sheets("Najemcy")
Set pokoj = najemcy.Range("A1:A100").Find(What:=pokNr, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
' MsgBox pokoj.Address
Set obecnyLok = najemcy.Range(pokoj.Offset(0, 6).Address).End(xlDown)
MsgBox obecnyLok.Address
Next
End Sub
Cześćチェックすることです。 'pokoj'は' najemcy'シートのセルです。このセルから6セル右に移動し、そのセルからアドレスを取得し、このアドレスに 'najemcy.Range'を実行します。だからあなたは同じ細胞に戻って行きます。代わりに 'Set obecnyLok = pokoj.Offset(0、6).End(xlDown)'を使うことができます。 –
良い点!ありがとうございました。 – neke