Мои записи начинаются в ячейке B8, и мне нужно их пересчитать в столбце A, начиная с ячейки A8.Автозаполнение с одной записью [Excel-VBA]
Я использовал ответ из этого вопроса «autofill down according to adjacent column», но как мне обрабатывать, когда показатель записи равен 0 или 1? Когда есть 1 запись, это ошибки. Кажется, автозаполнение невозможно автозаполнять одну ячейку.
У меня есть условия для тестирования нуля и одного, но есть ли более чистый способ сделать это?
LastRow = Cells(Rows.Count, 2).End(xlUp).Row 'Find last row
If LastRow >= 8 Then 'If recordcount is 1 or greater
Range("A8").FormulaR1C1 = "1" 'First number is "1"
If Not LastRow = 8 Then 'If not recordcount exactly 1
'Enumerate the remaining records with Autofill
Range("A8").AutoFill Destination:=Range("A8:A" & LastRow), Type:=xlLinearTrend
End If
End If
Это будет работать. Жесткое кодирование 1048575 для последней строки B может быть плохой идеей, если люди с немного более старыми версиями Excel используют формулу. – peege
Вы правы. Ваш пример лучше для более широкого использования. Я мог бы изменить мой, но тогда единственное реальное различие между нашими ответами было бы «For' vs« For Every »и что мой пример пропускает перечисление, когда он встречает пустую ячейку ..., которую я даже не уверен, что OP хочет/потребности. – wahwahwah
Оставьте свое и пусть OP выбрать, и пусть будущие читатели найдут значение в вариациях. Неважно, кто получает кредит, так как мы оба это делали одновременно. Кроме того, в будущем появятся люди, которым понадобится то, что вы сделали немного другим способом, подобно тому, как OP изменил чужой ответ в другом месте. Kudos .. Хотя, я бы изменил LastRow, по причинам, ваш ответ по-прежнему отличается и действителен. Использование для каждого и смещение и пропуски любых пробелов (приятное добавление) – peege