Строка поиска, создайте формулу ниже найденного «поиска» имени в заголовке, скопируйте формулу до последней строки - PullRequest
0 голосов
/ 06 мая 2019

Начиная с ячейки B5, ищите строку «Текущий месяц». В этом столбце, начиная с ячейки под заголовком «Текущий месяц» (на этот раз L6), создайте формулу, которая ссылается на один столбец слева от этого столбца, «= K6».

Эта формула будет продолжаться вниз по столбцу до последней строки. Этот столбец будет меняться каждый месяц в связи с тем, что ежемесячные финансовые результаты будут добавляться каждый месяц. В настоящее время MainAccount, DEPT, Dep Lookup, PROD, PROD_LINE, RD_CAT, январь, февраль, март, апрель, текущий месяц и YTD являются текущими заголовками, так как я работаю над результатами на конец апреля месяца. «Текущий месяц» в настоящее время находится в столбце L листа, в следующем месяце он будет в M. В основном, это дает мне текущие сборы за месяцы, которые будут использоваться для обновления различных сводных таблиц, где мне не нужно менять ежемесячные данные каждый месяц.

Я думаю, что меня запутали в части кода ActiveCell, но я не уверен.

    Range "B5").Select                                                           Range(Selection, Selection.End xltoRight)).Select                               
Selection.Find(What:="Current Month", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Activate                     
ActiveCell.Offset(1).Select                                                     
ActiveCell.FormulaR1C1 = "=RC[-1]"                                              

LR2 = Cells(Rows.Count, "A").End(xlUp).Row
Set Rng2 = Range(ActiveCell & LR2)

ActiveCell.Select
Selection.Copy
Rng2.Select
ActiveSheet.Paste

В столбце «Текущий месяц» должна быть формула вниз по странице, которая ссылается на последний месяц. В этом случае заголовок Current Month находится в L5, формула будет начинаться с L6, которая будет = k6, а затем копируется в последнюю строку, и будет копировать формулу только в пустых строках, чтобы я не потерял мои заголовки, так как на листе много диапазонов, которые привязаны к сводным таблицам.

1 Ответ

0 голосов
/ 07 мая 2019

Присвойте свою находку переменной диапазона и просто скопируйте весь столбец, смещение на 1 столбец и вставьте.

Dim fHdr As Range, LR2 As Long

With ThisWorkbook.Sheets("Sheet1") '    
    Set fHdr = .Cells.Find(What:="Current Month", After:=.Cells(5, 2), _
    LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
    SearchDirection:=xlNext, MatchCase:=False)

    LR2 = Cells(Rows.Count, "A").End(xlUp).Row

    If fHdr Is Nothing Then
        Exit Sub

    Else
        With fHdr
            .Offset(1, 1).Resize(LR2 - 2).FormulaR1C1 = "=RC[-1]"
        End With
    End If
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...