Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2021, 15:46   #1
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию ПОИСК через VBA и вставка формулы в определенный стобец строки

Добрый день уважаемые форумчане.

Есть такая задача. Нужно последовательно находить значение в ячейке содержащее " Итог" и в определенном столбце вставить формулу. Можно это реализовать с помощью макроса?
Например:
1. Значение " Итог" будет всегда в столбце "С"
2. Формулу нужно вставить в столбец "P" этой же строки
И так далее пока не закончится значения с ячейками " Итог"
OgE®_M@G вне форума Ответить с цитированием
Старый 14.09.2021, 19:36   #2
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

например так?
Код:
Sub ВставкаФормулы()
'   https://programmersforum.ru/showthread.php?t=340291
    Dim RwL&, Rw&, RwF&
    RwF = 2     '   пропускаем стоку с заголовком
    RwL = Cells(Rows.Count, 3).End(xlUp).Row
    For Rw = RwF To RwL
        If Cells(Rw, 3) <> "" Then
            '   вставляем формулу, например:
            Cells(Rw, 16).Formula = "=C" & Rw
        End If
    Next Rw
End Sub
Elixi вне форума Ответить с цитированием
Старый 15.09.2021, 15:15   #3
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Добрый день. Спасибо большое. Неправильно объяснил задачу. Нужно найти строку в столбце "С" в которой содержится значение " Итог" и в столбец "P" этой же строки вставить формулу. В любом случае поправил следующим образом:
Код:
Sub ВставкаФормулы()
'   https://programmersforum.ru/showthread.php?t=340291
    Dim RwL&, Rw&, RwF&
    RwF = 2     '   пропускаем стоку с заголовком
    RwL = Cells(Rows.Count, 3).End(xlUp).Row
    For Rw = RwF To RwL
        If Cells(Rw, 3) Like "* Итог*" Then
            '   вставляем формулу, например:
            Cells(Rw, 16).Formula = "=RC[-1]-R3C32" & Rw
        End If
    Next Rw
End Sub
Загвоздка в следующем нужно чтобы значение ячейки R3C32 было абсолютной ссылкой на ячейку. Можете поправить?
OgE®_M@G вне форума Ответить с цитированием
Старый 15.09.2021, 15:16   #4
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Добрый день. Спасибо большое. Неправильно объяснил задачу. Нужно найти строку в столбце "С" в которой содержится значение " Итог" и в столбец "P" этой же строки вставить формулу. В любом случае поправил следующим образом:
Код:
Sub ВставкаФормулы()
'   https://programmersforum.ru/showthread.php?t=340291
    Dim RwL&, Rw&, RwF&
    RwF = 2     '   пропускаем стоку с заголовком
    RwL = Cells(Rows.Count, 3).End(xlUp).Row
    For Rw = RwF To RwL
        If Cells(Rw, 3) Like "* Итог*" Then
            '   вставляем формулу, например:
            Cells(Rw, 16).Formula = "=RC[-1]-R3C32" & Rw
        End If
    Next Rw
End Sub
Загвоздка в следующем нужно чтобы значение ячейки R3C32 было абсолютной ссылкой на ячейку. Можете поправить?
OgE®_M@G вне форума Ответить с цитированием
Старый 15.09.2021, 17:31   #5
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

Цитата:
Сообщение от OgE®_M@G Посмотреть сообщение
Загвоздка в следующем нужно чтобы значение ячейки R3C32 было абсолютной ссылкой на ячейку. Можете поправить?
так у вас R3C32 и есть абсолютная ссилка
всё портите причитанием номера строки & Rw
Elixi вне форума Ответить с цитированием
Старый 16.09.2021, 14:07   #6
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Добрый день. Как мне написать формулу, чтобы только увеличивалась RC[-1], а R3C32 оставалась без изменений.
OgE®_M@G вне форума Ответить с цитированием
Старый 16.09.2021, 21:20   #7
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

Цитата:
Сообщение от OgE®_M@G Посмотреть сообщение
Добрый день. Как мне написать формулу, чтобы только увеличивалась RC[-1], а R3C32 оставалась без изменений.
например так:
Cells(Rw, 16).Formula = "=RC[-1]-R3C32"
но здесь никто не подозревает, что вы хотите посчитать,
так что подойдёт ли вам такая формула ещё вопрос
Elixi вне форума Ответить с цитированием
Старый 17.09.2021, 07:08   #8
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Elixi Посмотреть сообщение
например так:
Cells(Rw, 16).Formula = "=RC[-1]-R3C32"
но здесь никто не подозревает, что вы хотите посчитать,
так что подойдёт ли вам такая формула ещё вопрос
Доброе утро. Мне необходимо увеличивать RC[-1] & Rw, а ссылка на R3C32 должна не изменяться.
OgE®_M@G вне форума Ответить с цитированием
Старый 17.09.2021, 08:10   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

"Увеличение" это "+", вот и плюсуйте что надо
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.09.2021, 11:48   #10
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

Цитата:
Сообщение от OgE®_M@G Посмотреть сообщение
Доброе утро. Мне необходимо увеличивать RC[-1] & Rw, а ссылка на R3C32 должна не изменяться.
Код:
Sub ВставкаФормулы()
'   https://programmersforum.ru/showthread.php?t=340291
    Dim RwL&, Rw&, RwF&
    RwF = 2     '   пропускаем стоку с заголовком
    RwL = Cells(Rows.Count, 3).End(xlUp).Row
    For Rw = RwF To RwL
        If Cells(Rw, 3) Like "* Итог*" Then
            '   вставляем формулу, например:
            '   ЧТO ТУТ ПРOИСХOДИТ
            '   выше вы нашли стрoку с Вашим Like "* Итог*"
            '   Rw теперь равнo нoмеру вашей стрoки, пусть Rw = 9 (для примера)
            '                                R3C32 - абсoлютная ссылка,
            '                                        как вы хoтели в стрoку 3 и стoлбец 32
            '                                        нo вы здесь причитаете "& Rw" и пoлучается
            '                                        R3C329 (пусть Rw = 9 (для примера))
            '                                        тo есть ссылка в стoлбец 329
            Cells(Rw, 16).Formula = "=RC[-1]-R3C32" & Rw
            '                         RC[-1]         эта часть oтнoсительная ссылка
            '                                        в квадратных скoбках, как сказать?,
            '                                        задают желаемoе расстoяние oт "НАШЕЙ" ячейки
            '                                        "НАША" ячейка здесь "Cells(Rw, 16)"
            '                                        тo есть стрoка "R = Rw" и стoлбец "C = 16"
            '                                        и пoсле RC[-1] oтнoсительная ссылка будет указывать
            '                                        в стрoку Rw так как мы не указали расстoяние
            '                                        и в стoлбец 15 так как 16 - 1 = 15
            '   надеюсь пoяснил дoдтатoчнo внятнo
        End If
    Next Rw
End Sub
Elixi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA:Вставка строки с формулами в определенных ячейках aSavinova Помощь студентам 0 04.12.2014 14:12
Поиск, вставка на готовый шаблон в Excel через Delphi7 Duisenbaev Общие вопросы Delphi 2 15.10.2012 22:56
поиск через VBA Tirendus Microsoft Office Excel 8 31.07.2009 13:49
вставка формулы в ячейку (vba) pride Microsoft Office Excel 5 13.07.2009 09:26
Вставка строки через n-е количество строк glazomer Microsoft Office Excel 5 12.03.2009 13:20