Страницы: 1
RSS
Дублировать числа из нескольких столбцов в один
 
Здравствуйте друзья, поковырялся на форумах, встречал подобную проблему и пути ее решения от других ситуаций, но так и не смог сделать, что требуется для своей таблицы. Суть следующая:

Есть выборка, столбцы F,J,N,R и т.д. (соотвественно с каждым месяцем выборка будет расширяться). Есть столбец A, который и требуется заполнить. Желательно формулой, а не макросом собрать в один столбец A все заполненные ячейки столбцов F,J,N,R и тд в порядке слева направо. Самая хитрость в следующем: в трех заполненных месяцах все понятно, они скомпонованы, но про сентябрь нет информации сколько будет заполненных ячеек, соотвественно и со всеми последующими месяцами.
Но если бех макросов никуда, значит макрос))
заранее спасибо за помощь!
 
Цитата
Nik57 написал:
Есть столбец A, который и требуется заполнить.
Но вот почему бы не показать желаемый результат? А то потом начнётся: а мне нужно было немного не так и т.п.
Поменяйте файл в своём сообщении.
P.S. Исходные данные плохие - всюду const: как проверить, что взяли нужные?
 
Юрий М, Как я понял нужен практически последовательный копи/пэст значений.
Nik57,  Это только VBA, C количеством строк в столбцах  не так сложно как по какому признаку столбец искать. Месяц+2, или четко 6,10,14 ....?  
По вопросам из тем форума, личку не читаю.
 
Цитата
если бех макросов никуда, значит макрос
Код
Sub Sbor()
Dim iLastRow As Long
Dim iLR As Long
Dim Arr
Dim j As Integer
  Arr = Array("F", "J", "N", "R")
  For j = 0 To UBound(Arr)
    iLastRow = Cells(Rows.Count, Arr(j)).End(xlUp).Row
    iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1
    Range(Cells(2, Arr(j)), Cells(iLastRow, Arr(j))).Copy Cells(iLR, 1)
  Next
End Sub
 
Цитата
БМВ написал:
Как я понял нужен практически последовательный копи/пэст значений
Скорее всего, так оно и есть, но ведь нужно же потенциальным помощникам СРАЗУ показывать желаемый результат, а не заставлять их гадать - так или не так...
 
Юрий, вот что должно получиться, const - это константы, они не должны участвовать в формировании, т.е. они не являются выборкой
Изменено: Nik57 - 16.02.2018 23:51:50
 
БМВ, да, все верно 6,10,14,18,22 и тд

Kuzmich, еще вопрос с вашего позволения. Если я хочу перенести действие макроса с столбца А, к примеру на столбец В, то в этой строке
Код
iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1 
поменять А на В не достаточно?
 
Цитата
перенести действие макроса с столбца А, к примеру на столбец В
Код
iLR = Cells(Rows.Count, "B").End(xlUp).Row + 1
Range(Cells(2, Arr(j)), Cells(iLastRow, Arr(j))).Copy Cells(iLR, 2)
 
Kuzmich, понял. Еще один нюанс, на который не обратил внимания изначально. В примере в выборке значения прописаны вручную, а что делать если там прописаны формулы? Макрос копирует не значения ячеек выборки, а формулы..  
 
Цитата
что делать если там прописаны формулы?
Применить PasteSpecial xlPasteValues
 
Kuzmich, слышал про такое, но как это конкретно работает, не могли бы уточнить на примере кода моего?
Код
Sub Sbor()
Dim iLastRow As Long
Dim iLR As Long
Dim Arr
Dim j As Integer
  Arr = Array("V", "Z", "AD", "AH", "AL", "AP", "AT", "AX", "BB", "BF", "BJ", "BN", "BR", "BV", "BZ", "CD", "CH", "CL", "CP", "CT", "CX", "DB")
  For j = 0 To UBound(Arr)
    iLastRow = Cells(Rows.Count, Arr(j)).End(xlUp).Row
    iLR = Cells(Rows.Count, "R").End(xlUp).Row + 1
    Range(Cells(2, Arr(j)), Cells(iLastRow, Arr(j))).Copy Cells(iLR, 18)
  Next
End Sub
Изменено: Nik57 - 17.02.2018 19:16:43
 
Код
Range(Cells(2, Arr(j)), Cells(iLastRow, Arr(j))).Copy 
Cells(iLR, 18).PasteSpecial xlPasteValues
 
Kuzmich, спасибо!
Страницы: 1
Наверх