Excel: установить формулу по умолчанию для каждой ячейки в столбце

577
thomas152374

У меня есть столбец со следующей формулой в каждой ячейке, который вычисляет разницу в километрах между двумя ячейками слева от каждой ячейки:

=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "") 

empty cell with no formula when I insert a new row

Моя проблема в том, что каждый раз, когда я вставляю новую строку между существующими данными, все ячейки в этой строке пусты, и мне нужно вручную поместить этот код в пустую ячейку.

Могу ли я установить для каждой ячейки в столбце (исключая заголовок) определенную формулу, даже когда я вставляю новую строку ?

Я попытался установить столбец в виде таблицы, и он успешно завершал автозаполнение ячеек всякий раз, когда я вставлял новую строку, однако у меня есть другие столбцы, которые я также хочу автозаполнять, и Excel не позволяет мне вставлять новую строку, если Я делаю более одного столбца в таблице.

0
Это легко сделать с помощью макроса Event ......... этот подход в порядке ?? Gary's Student 6 лет назад 0
Ваш вопрос выглядит сложным, потому что вы показали только один столбец. Отредактируйте снимок экрана и добавьте столбцы слева от существующего. Вы также можете получить не VBA решение. Rajesh S 6 лет назад 0
Томас, когда вы вставляете строку / строку между ними, безусловно, вы находите пустые ячейки / строки / строки, так как формула является частью строки, так что вы получили пустую ячейку и для формулы. Это как когда вы удаляете данные из всех исходных ячеек / строк / столбцов, тогда формуле больше нечего вычислять. Rajesh S 6 лет назад 0

2 ответа на вопрос

2
Bandersnatch

Я собирался просто опубликовать это видео, но, очевидно, мне нужно набрать не менее 30 символов.

Как насчет «Вот простой способ сделать это». Черт, это только 29.

Для всех, кто интересуется, значок «Вставить картинку» не будет принимать .mov, но есть довольно удобный сайт, который преобразует видеофайлы в анимированные GIF-файлы.

enter image description here

Я проголосовал за это простое, но удобное решение. Rajesh S 6 лет назад 0
Как вы создали файл **. Mov **? Gary's Student 6 лет назад 0
Привет, @ Гари. Запись экрана - это (малоизвестная) [функция в Quicktime] (https://support.apple.com/guide/quicktime-player/record-your-screen-qtp97b08e666/mac). Я действительно раньше ее не использовал, но хотел выяснить, как это сделать. Это было довольно легко использовать. Bandersnatch 6 лет назад 0
@Bandersnatch Спасибо! ...................... очень круто! Gary's Student 6 лет назад 0
Спасибо! Единственная проблема, с которой я столкнулся, - это когда вы начинаете запись, вы находитесь в QuickTime, поэтому отображается строка меню QT. Я перешел в Excel, а затем отредактировал первые несколько секунд. Используя Trim ... В QT. :-) Bandersnatch 6 лет назад 0
0
Gary's Student

Вот небольшая демонстрация, которую вы можете адаптировать к вашей реальной схеме. В демоверсии:

  1. Интересующий столбец - столбец B
  2. если вставлено более одной строки, ничего не произойдет
  3. если вставлена ​​строка ниже области данных, ничего не происходит
  4. если строка удалена, ничего не происходит
  5. если вставлена ​​строка в середине данных, ячейка в столбце B будет заполнена либо формулой выше, либо формулой ниже
  6. если нет формулы выше или ниже новой ячейки, ничего не происходит

Вставьте следующую подпункт в область кода рабочего листа:

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 

Похожие вопросы