Я определил пару диапазонов, но у меня проблемы с определением нового диапазона с несколькими условиями.Я пытаюсь установить новый диапазон от целевой ячейки вниз, пока длина первой ИСТИННОЙ ячейки не станет больше 3 символов.Новый желаемый диапазон будет "Range (" C "& Target.Row &": "& Range (" C65536 "). End (xlDown) .Address (0, 0))", но только для тех ячеек, которые имеют3 или менее символов.Проблема с этим кодом заключается в том, что он останавливается на первой непустой ячейке.Последняя ячейка в диапазоне будет последней ячейкой с максимум 3 символами (и не пустыми) до того, как значение ячейки будет иметь более 3 символов.
Например, новый диапазон будет C35: C47, который затем будетприменяется для соседних ячеек как B35: B47.Позже в моем коде я бы затем использовал этот новый диапазон (B35: B47) в цикле «for» для определения новых значений для этих соседних ячеек.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim rng As Range, cell As Range
Set rng = Range("B" & Target.Row & ":" & Range("B65536").End(xlUp).Address(0, 0))
Set r = Target
If Target.Column = 3 And Selection.Column = 3 Then
If Intersect(Range("C:C"), r) Is Nothing Then Exit Sub
If r.Value = "" Then Exit Sub
If r.Offset(0, 1).Value <> "" Then Exit Sub
If r.Offset(0, -1).Value <> "" Then Exit Sub
Application.EnableEvents = False
r.Offset(0, -1) = Application.WorksheetFunction.Max(Range("Sheet1!B7:B" & r.Row))
For Each cell In rng
If IsNumeric(cell.Value) Then
If cell.Value <> "" Then
cell.Value = cell.Value + 1
End If
Else
MsgBox "Cell " & cell.Address(0, 0) & " does not have a number"
Exit Sub
End If
Next
Application.EnableEvents = True
End If
End Sub
Новый диапазон будет использоваться ваналогично «for-loop» в примере с той разницей, что «rng» будет новым диапазоном -> «Для каждой ячейки в rng2» ...