Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 След.
Работа формулы внутри макроса в выделенном диапазоне
 
Jack Famous, Добрый вечер, спасибо большое Вам за оперативность и доходчивость. И самое главное за грамотный и интересный подход)  :idea:  
Работа формулы внутри макроса в выделенном диапазоне
 
Jack Famous, Добрый день, протестировал немного вчера Ваш код, все отлично, немного переделал под свои нужды.

Только один вопрос: К примеру если я захочу добавить какую то формулу для обработки, то как мне это сделать правильно? Могли бы чуть подробнее описать?
Просто я пока с такими вещами еще не работал. Я видел вы скинули два справочника, но как правильно мне нужно будет записывать нужные функции в код?
Работа формулы внутри макроса в выделенном диапазоне
 
Цитата
Jack Famous написал:
Если объёмы большие, то можно ещё ускорить - сообщите по результатам тестов…
Доброе утро, прошу прощения, не мог раньше ответить. Пока еще потестить не успел, но сегодня точно посмотрю. По поводу ускорения, если можно сделать такой вариант то буду очень сильно благодарен. Скорость работы это первое что меня волнует в коде.
Работа формулы внутри макроса в выделенном диапазоне
 
Jack Famous, Спасибо большое за отзывчивость. Я посмотрю сегодня вечером, судя по описанию, да видимо немного не то, но я обязательно приду и изучу, наверное сам уже переделаю как мне нужно будет. Мне как раз именно важно, максимально быстрое срабатывание кода по вызову и все, без окон и лишних телодвижений. Еще раз спасибо, если возникнут вопросы сразу отпишусь!
Работа формулы внутри макроса в выделенном диапазоне
 
Sanja, я понимаю что это все делается формулами, но гораздо проше получить результат кнопочкой чем игратся с вводом той самой формулы протяжкой и т.д

я бы и рад написать нормальный код, но мне с такими формулами нужно делать несколько шт, а под каждую отдельную фунцию просить тут писать код я не буду же. лучше уже сделать код макроса который будет вставлять значения той или иной формулы которую я впихну в код. по моему так проще. поправьте если я не прав
Работа формулы внутри макроса в выделенном диапазоне
 
Sanja, прошу прощения, я вам отвечал по поводу вашего варианта, но сообщения не нашел, не сохранилось видимо. Я писал о том что как бы я не совсем понимаю как именно работает ваш вариант. Т.к у вас два варианта для двух разных формул, но единственное что в них отличается так это названия. И я так и не смог их проверить.
Работа формулы внутри макроса в выделенном диапазоне
 
Цитата
Sanja написал:
А если в формуле больше одного аргумента - ссылки?
ну речь идет в основном про формулы с одним аргументом типа: пропнач, срзнач, прописн и т.д. если больше аргументов то ошибка, я впринципе не собирался использовать формулы с большим кол-вом аргументов
Работа формулы внутри макроса в выделенном диапазоне
 
Цитата
Андрей VG написал: ActiveCell.Value = Application.Evaluate("UPPER(""" & ActiveCell.Value & """)")
данный вариант работает только с одной активной ячейкой, нужен именно диапазон как во втором примере:

Андрей VGВаш макрос, к сожалению работает довольно медленно как вы и описывали, особенно на большом объеме данных. Второй вариант вроде то что нужно, но возможно ли его как то ускорить?
Работа формулы внутри макроса в выделенном диапазоне
 
Цитата
Ігор Гончаренко написал:
опишите ее для начала.
Цитата
Fsociety_ написал:
Задача: данные формулы должны выполнятся в выделенном диапазоне. Они должны брать значения из выделенного диапазона обрабатывать их в соответствии с назначением формулы и возвращать результат работы формулы значением. как то так)
Работа формулы внутри макроса в выделенном диапазоне
 
Sanja, к тому что бы я мог любую формулу подставить в код и она выполняла свою фунцию, нежели писать каждый раз новый код
Работа формулы внутри макроса в выделенном диапазоне
 
Андрей VG, Ігор Гончаренко, неверно поняли. прошу прощения что недостаточно подробно описал задачу.
Задача: данные формулы должны выполнятся в выделенном диапазоне. Они должны брать значения из выделенного диапазона обрабатывать их в соответствии с назначением формулы и возвращать результат работы формулы значением. как то так)  
Работа формулы внутри макроса в выделенном диапазоне
 
Sanja,Добрый вечер, прошу прощения, только сейчас удалось зайти на форум. Ваш вариант не работает немножко. Да и у Вас указан конкретный диапазон, а мне нужно именно что бы макрос работал с выделенным диапазоном
Работа формулы внутри макроса в выделенном диапазоне
 
Добрый день ув. формучане

Как сделать что бы формулы эти работали в любом выделенном диапазоне. У меня они работаю только в том диапазоне в котором я записывал рекордером.
На сколько я понимаю диапазон тут проставляется: "RC[-1]" но как правильно прописать, для формулы работу с выделенным диапазоном?
Код
Sub ПРОПНАЧ()
    Selection.FormulaR1C1 = "=PROPER(RC[-1])"
End Sub
Sub ПРОПИСН()
 Selection.FormulaR1C1 = "=UPPER(RC[-1])"
End Sub
Закрасить ячейку при вхождении в текст слова из диапазона
 
Цитата
Sanja написал:
Вы бы проверили, для начала...
Да простите, небыло времени, ответил, что бы не подумали что кинули тему)
Я посмотрел все прямо отлично. Сразу спасибо, за то что сохранили основную структуру кода, это было важно. Есть только одно но, К примеру если в текстом в котором мы ищем слова будет одно слово, то он его не найдет, изначально макрос находил такие слова.

И еще такой вопрос: Тут получается если в столбце с искомыми словами "C" будет меньше двух заполненных ячеек, то будет ошибка вылазить, как это можно исправить, что бы он искал и одно слово тоже?

P.S прошу прощения что долго не отвечал, вчера вообще небыло возможности
Изменено: Fsociety_ - 8 Июл 2019 21:13:46
Закрасить ячейку при вхождении в текст слова из диапазона
 
Цитата
Sanja написал:
Ну и используйте его для признака. Скройте столбец H, и никто разницы не заметит
Ну я бы и с радостью, но как я ранее писал, проблема будет в том что придется остальные макросы переделывать под работу этого. Т.к те макросы тоже завязаны на цвете.
Ладно, я сегодня попробую что то с этим сделать вечером, отпишусь. Пока код не пробовал, но заранее благодарю за проделанную работу. Вечером протестирую отпишу)
Закрасить ячейку при вхождении в текст слова из диапазона
 
Sanja, Это из за раскраски так тормозит? Я думал из за того что он каждый раз заново слова ищет и помечает каждый раз при добавлении новой фразы.
Вы предложили вставлять символ напротив найденной ячейки, а так не получится сделать с цветами? Что бы он один раз пометил те слова которые найдет и в следующие разы слова которые он уже искал больше не искал. Просто есть пару нюансов. 1. У меня в файле нету свободных столбцов вплоть до столбца "H" только там уже можно будет символы ставить. 2 нюанс в том, что у меня еще другие макросы которые взаимодействуют как раз с этими помеченными желтыми ячейками. Если действовать по вашему предложению то мне придется все коды перелопачивать.
Закрасить ячейку при вхождении в текст слова из диапазона
 
Юрий М, Простите исправимся  
Закрасить ячейку при вхождении в текст слова из диапазона
 
Sanja,
Цитата
Sanja написал:
но наплевательски относящийся к составлению файла-примера более неуважителен к желающим помочь
где интересно видно наплевательски, а фактор того что человек мог ошибочно выслать не тот файл и просто забыть сменить название листа в примере?

Цитата
Sanja написал:
Да и файл-пример ничуть не изменился, все так же вылетает с ошибками
Я еще не успел заменить, пришлось отойти после отписания коммента о замене. Сейчас уже заменил.

Цитата
Sanja написал:
Где Вы неуважительное отношение к себе увидели? И высокомерие?
ну как минимум так выглядит, потому что сами же описываете что там название листа не то и дальше смотреть из за этого не интересно. Я не хочу никого оскорбить, но просто так выглядит Ваше предыдущее сообщение.


За то что файл не тот поставил прошу прощения конечно. Заменил
Закрасить ячейку при вхождении в текст слова из диапазона
 
Sanja, пример поправил. Если разбираться не интересно, то какой интерес тогда писать сюда. Можно отвечать хотя бы как минимум по уважительнее, без такого высокомерия. Тем более то что забыл прописать "Лист1" (что очень трудно) по моему не повод для такого обращения.
Закрасить ячейку при вхождении в текст слова из диапазона
 
Добрый вечер, господа.

Просьба помочь с этим кодом.
Принцип работы: Берет значения из столбца С (у меня макрос реагирует тут на изменение в ячейке, т.к каждый раз добавляется новое слово и его нужно найти) и ищет их в столбце B, далее помечает найденные ячейки желтым.
Все работает как надо, только есть одно НО. При большом кол-ве текста и при добавлении искомых слов (они регулярно добавляются) И чем больше искомых слов то тем дольше он думает. Я так понял, он каждый раз заново все искомые слова обрабатывает и ищет в тексте, хотя он уже их находил и уже пометил цветом, и вот нужно объяснить ему что бы он эти слова больше не искал если он их уже нашел и пометил один раз. Получается ему нужно реагировать на каждое искомое слово только один раз и больше не искать его.
Заранее большое спасибо кто сможет помочь!
Изменено: Fsociety_ - 6 Июл 2019 12:19:23
Переделка макроса сцепки слов со строк на столбцы
 
Цитата
Sanja написал:
Вы в примере покажите ручками результат работы 'переделанного' макроса
результат с первого листа - это и есть результат на втором. Просто посмотрите на первый лист вот такой результат и должен быть. Только сцепка осуществлятся методом описанном ранее, и как это примерно выглядит показано во втором листе.

Условно, с 1 по 15 столбец - это столбцы которые сцепляются. Столбец 16 - выводятся результаты.
Изменено: Fsociety_ - 3 Июл 2019 20:41:01
Переделка макроса сцепки слов со строк на столбцы
 
Цитата
Sanja написал:
Точно такой же результат Вам делает Ваш макрос. Зачем его переделывать?
Вы о надобности у всех спрашиваете на этом форуме?)
Как минимум построчно это неудобно, неудобно из за того что изначальные данные в столбцах, и играться каждый раз с переводом в строки тоже не удобно, и это + куча лишних телодвижений. Второе, это визуально не удобно и третье данных дофига бывает, и если нужно что то менять, опять же практично не удобно все это. К примеру мне понадобилось удалить какие то слова, а они запихерились в столбцы AZYZQQ и еще миллион столбцов.
Переделка макроса сцепки слов со строк на столбцы
 
Цитата
RAN написал:
Как "причем"? Его нужно переделать.  
читайте 3 сообщение
Переделка макроса сцепки слов со строк на столбцы
 
Sanja, там показан принцип того как слова должны располагаться в столбцах. Смысл в том что результат будет таким же как и в случае нынешней работы макроса (этот результат есть в первой вкладке) - просто нужно запустить макрос. Поменяться должен принцип работы макрос, различия я и показал в разных вкладках. А результат должен быть точно таким же как и в первой вкладке
Изменено: Fsociety_ - 3 Июл 2019 20:21:55
Переделка макроса сцепки слов со строк на столбцы
 
Добрый вечер, господа.

Есть макрос - он сцепляет между собой слова между строками. Нужно переделать, что бы он сцеплял между собой слова из столбцов.
Самое главное сохранить нынешние функции макроса и его скорость обработки.

Пример: Сейчас макрос сцепляет все слова из первой строки со словами из следующих.
              Нужно все тоже самое только между столбцами. Что бы слова из первого столбца сцеплялись со всеми словами из последующих заполненных столбцов.


Приложил пример, там более понятно все. На первом листе как все работает сейчас, а на втором как все должно быть.
Макрос срабатывает при изменении ячеек на всем листе, а не в прописанном диапазоне
 
Karataev, Без End if не будет работать.
               Даже если эту строку убрать (она в принципе лишняя), то будет все так же:

Код
If Not Intersect(Target, Columns(1)) Is Nothing Then

P.S Не понимаю такой фигни, уже второй или третий раз так. Я не исправил код по вашему образцу в своем изначальном коде. Ничего не изменилось, все так же работает.

Потом копирую Ваш и работает. Хотя код абсолютно идентичен. Что за черти?)

P.S Теперь вроде нормально, Спасибо!

Изменено: Fsociety_ - 2 Июл 2019 22:53:56
Макрос срабатывает при изменении ячеек на всем листе, а не в прописанном диапазоне
 
Добрый вечер, господа.

Такой проблем у меня. Не могу понять почему этот макрос срабатывает при изменении на всем листе, а не в прописанном в коде диапазоне (A9:A10000).
В итоге при любом изменении на листе срабатывает макрос.
Код
Private Sub Worksheet_Change(ByVal Target As Range)

  If Not Intersect(Range("A9:A10000"), Target) Is Nothing Then

    del_space ' - тут все нормально, этот код никак не воздействует

  End If


If Not Intersect(Target, Columns(1)) Is Nothing Then
    Dim arrA(), I&, J&, splitA
    On Error Resume Next
    arrA = Range("A9:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
    With CreateObject("Scripting.Dictionary")
        For I = 1 To UBound(arrA)
            splitA = Split(arrA(I, 1))
            For J = 0 To UBound(splitA)
                If Not IsEmpty(splitA(J)) Then
                    iTemp = .Item(splitA(J))
                End If
            Next
        Next
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        Range("B9:C9").Resize(UBound(.Keys) + 1) = Application.Transpose(.Keys)
    End With
    With Me.Sort
        .SortFields.Add Key:=Range("B:C"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Apply
    End With
End If


Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub






Предварительно большое спасибо за помощь!
Макроса массовой замены слов, ускорение работы и доработка алгоритма
 
Sanja, Спасибо большое за уделенное время, я просто вопрос задал. Я уже сам в первом Вашем коде поправил. Еще раз большое спасибо, вы помогли решить проблему и + с Вашим кодом появилась доп.функция для редактирования текста о которой я не подразумевал. Спасибо!
Макроса массовой замены слов, ускорение работы и доработка алгоритма
 
Sanja, я просто не понимаю логику кода пока, зачем оно приводится в конце к виду с " - ", а не с " ", если в основном данные изначально с пробелами?
Макроса массовой замены слов, ускорение работы и доработка алгоритма
 
Sanja, тот же самый пример, только в вашем коде нужно что бы учитывались пробелы, и все. Ваш пример вроде отлично подходит только нужно что бы он с пробелами работал. Файл приложил
Страницы: 1 2 3 4 5 След.
Наверх