Я делаю макрос для вычисления значений ячеек из заданного диапазона (начиная с ячейки до конечной ячейки) и повторяя ячейки до тех пор, пока не найдет нулевую ячейку (в ней нет значения).Стоп-цикл VBA (Application.InputBox)
Так рабочий процесс должен быть:
- Запуск ячейки (определяется пользователем);
- Конечная ячейка (определяется пользователем);
- Пронумеруйте значения до тех пор, пока не будет найдена пустая ячейка. Если пустая ячейка найдена, следующий столбец (Примечание: я предполагаю, что пустая ячейка является разрывом столбца);
- Проход через столбцы до тех пор, пока не будет достигнута конечная ячейка;
- Если конечная ячейка достигнута, , если она не заполнена, прокрутите колонку до тех пор, пока не будет найдена пустая ячейка;
- Остановите программу.
Он также должен получать значения из активной ячейки и вычислять сумму, когда она меняет колонку (теперь это просто идея, а не основная проблема).
Проблема, с которой я столкнулась, заключается в том, что, разрешая пользователю выбирать ее окончание, я застреваю при остановке цикла, когда он достигает этой конечной ячейки.
Это то, что я сделал до сих пор (Примечание: обработка Нет ошибок на входе еще, чтобы быть добавлены позже):
Sub test01()
Dim startCell As Variant
Dim endCell As Variant
Range("A1").Select ' Starting cell position
startCell = Application.InputBox("A", "A", , , , , Type:=8) 'Start of range
endCell = Application.InputBox("B", "B", , , , , Type:=8) 'End of range
Do
If IsEmpty(ActiveCell) Then
ActiveCell.EntireColumn.Select
ActiveCell.Offset(0, 1).Select
Else
'Calculate data
ActiveCell.Offset(1, 0).Select
If ActiveCell.Column And ActiveCell.Row = endCell Then
Exit Do
End If
End If
Loop
End Sub
Есть sugestions на то, что я делаю неправильно и пути совершенствования Это? Спасибо :)
PS. Новое с vba.
Пожалуйста, объясните это утверждение: если ActiveCell.Column и ActiveCell.Row = endCell Then. Спасибо и приветствую, –
Я не знал, как получить абсолютную позицию ячейки, поэтому я решил ссылаться на ее колонку и адрес :) Спасибо за помощь! –