
У меня есть столбец со следующей формулой в каждой ячейке, которая вычисляет разницу в километрах между двумя ячейками слева от каждой ячейки:
=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "")
Моя проблема в том, что каждый раз, когда я вставляю новую строку между существующими данными, все ячейки в этой строке пустые, и мне нужно вручную вставить этот код в пустую ячейку.
Можно ли задать для каждой ячейки столбца (кроме заголовка) определенную формулу?даже когда я вставляю новую строку?
Я попытался сделать столбец таблицей, и он успешно автозаполнял ячейки всякий раз, когда я вставлял новую строку. Однако у меня есть другие столбцы, которые я также хочу автозаполнить, и Excel не позволяет мне вставить новую строку, если я делаю таблицей более одного столбца.
решение1
Вот небольшая демонстрация, которую вы можете адаптировать к своей реальной схеме. В демонстрации:
- интересующий нас столбец — это столбецБ
- если вставлено больше одной строки, ничего не произойдет
- если вставить строку под областью данных, ничего не произойдет
- если строка удалена, ничего не происходит
- если вставлена строка в середину данных, ячейка в столбцеБбудет заполнено либо формулой выше, либо формулой ниже
- если выше или ниже новой ячейки нет формулы, ничего не происходит
Вставьте следующую подпрограмму в область кода рабочего листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, r1 As Range, r2 As Range
Set r = Target
If r.Rows.Count > 1 Then Exit Sub
If r.Columns.Count <> Cells.Columns.Count Then Exit Sub
If r.Row = 1 Then Exit Sub
Set r1 = Intersect(r, Columns(2))
If r1.Value <> "" Then Exit Sub
If r1.Offset(-1, 0).HasFormula Then
Application.EnableEvents = False
r1.Offset(-1, 0).Copy r1
Application.EnableEvents = True
Exit Sub
End If
If r1.Offset(1, 0).HasFormula Then
Application.EnableEvents = False
r1.Offset(1, 0).Copy r1
Application.EnableEvents = True
Exit Sub
End If
End Sub
решение2
Я собирался просто опубликовать это видео, но, очевидно, мне придется набрать не менее 30 символов.
А как насчет «Вот простой способ сделать это». Черт, всего лишь 29.
Для тех, кому интересно, иконка «Вставить изображение» не принимает .mov, но естьдовольно аккуратный сайткоторый преобразует видеофайлы в анимированные GIF-файлы.