Итак, я работаю над этим небольшим кусочком кода уже пару дней и натолкнулся на загадку, которую просто не могу понять.По сути, у меня есть вложенный цикл for, который должен принимать значения из одного листа и помещать их в таблицу данных, чтобы эти значения могли быть сохранены и усреднены по времени.Я хочу, чтобы данные из ячеек M5 - M35 помещались в таблицу данных следующим образом: слева направо A3 - AC200, но я также хочу, чтобы цикл прекратился, когда в диапазоне M5 - M35 заканчиваются значения и когда пользовательДалее нажимает кнопку для сохранения данных. Я хочу, чтобы цикл начинался на следующей строке вниз.
Итак, эта электронная таблица предназначена для моей работы, для теста на урожайность, и я хочу, чтобы ее собственная база данных хранилась на скрытом листе, который будет усредняться со временем, чтобы я или другие могли вернуться ки обновляйте его каждые несколько месяцев, чтобы сделать средние значения более точными и лучше понять прибыльность определенных кусков мяса.
Я попытался установить значения цикла обратно к их начальным значениям, как только циклзаполнил все данные, которые работали, и я подумал, что решил проблему, пока я не запустил тест несколько раз и не обнаружил, что первый и второй раз работают, как ожидается, начиная с третьего, однако не запускает цикл внизв следующем ряду он просто продолжается через диапазон

Sub subData1()
Dim rng As Range
Dim rcell As Range
Dim ws As Worksheet
Dim Tws As Worksheet
Set Tws = Worksheets("Test")
Set ws = Worksheets("data")
For i = 3 To 200 'range is from cell A3 - A200
'if start cell already has value go down a row
If ws.Cells(i, 1).Value <> "" Then
i = i + 1
End If
'set the range for data sheet
Set rng = ws.Range(ws.Cells(i, 1), ws.Cells(i, 30).End(xlToRight))
For f = 5 To 35
For Each rcell In rng 'loop through each cell in data sheet range
If rcell.Value = "" Then 'if cell is blank input data
If Tws.Cells(f, 13).Value <> "" Then
'Check the selected Cell has a value
rcell.Value = Tws.Cells(f, 13).Value
f = f + 1
End If
Else
If f > 5 Then
MsgBox "Data Storage Updated", , "Data Storage"
f = 5
Exit Sub
'Else
'MsgBox "Value Must Be Greater Than Zero", , f
'f = 5
'Exit Sub
End If
End If
Next
Next
Next
End Sub