Вставить из листа

Автор Screen, 08 октября 2022, 14:36

Screen

да, со столбца G.
Мне кажется, что не вставляется в другие ячейки, потому что заголовки объединены. Вставилось только там, где заголовки не объединены. Только не ругайтесь)

Администратор

А что находится в G8, какой-то текст или ещё что?

Screen


Администратор

Щёлкните в ячейке G8 и посмотрите, что в адресной строке, какой там адрес?


Администратор

Эта ячейка объединённая: Worksheets("Отчёт").Cells(r, "J")?

Screen

Нет, в Отчёте нет объединенных ячеек (кроме заголовков)

Администратор

Да, объединение заголовков может иметь значение.
Если строки таблицы ещё не заполнены, а на листе только заголовок и он объединённый, то последняя строка будет определена неправильно. Но у вас в ответе #15 на скриншоте не видно столбца J.
Макрос получается вставляет значение в заголовок, в невидимую ячейку.
Значит последнюю строку ищите по тому столбцу, в котором всегда будут данные или в котором нет объединённых заголовков.

Screen

Когда отменяла объединение заголовков, то всё работало. Просто так не очень удобно. Я вас поняла, буду переделывать заголовки. Спасибо большое за терпение!

Администратор

А зачем вы ищите в отчёте последнюю строку для каждого столбца?
Почему бы не найти её один раз?

Screen

Я думала каждый раз нужно. Если планируется большое кол-во новых заявок, чтобы автоматом они подгружались. Я вот разобралась с этим. Единственное, некоторые поля не заполнены в заявке и поэтому ищу как вместо пустой ячейки писать тире. Если вам не сложно показать, буду рада)

Администратор

Теперь вы будете искать последнюю строку в отчёте один раз? В этом случае тогда вы можете искать последнюю строку по тому столбцу, в котором нет объединённых ячеек в заголовке, и вам не надо менять внешний вид заголовков.

Screen


Администратор

Вот так должно получиться:

Макрос
Sub Макрос()
   
    Dim r As Long
   
    r = Worksheets("Отчёт").Cells(Worksheets("Отчёт").Rows.Count, "N").End(xlUp).Row + 1
    Worksheets("Отчёт").Cells(r, "N").Value = Range("F11").Value
    Worksheets("Отчёт").Cells(r, "M").Value = Range("E11").Value
    Worksheets("Отчёт").Cells(r, "L").Value = Range("D11").Value
    Worksheets("Отчёт").Cells(r, "K").Value = Range("C11").Value
    Worksheets("Отчёт").Cells(r, "J").Value = Range("G8").Value
    Worksheets("Отчёт").Cells(r, "I").Value = Range("C8").Value
   
End Sub
[свернуть]

Администратор

Работает то, что я предложил? Вместо столбца N можете выбрать другой столбец для поиска последней строки.