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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 346 След.
Нечёткий текстовый поиск в одной колонке
 
Цитата
DartoArem написал:
работал с надстройкой Fuzzy Lookup, но она сравнивает 2 списка и находит более менее похожие значения
лучше этой надстройки вряд ли что-то получится. Поэтому я бы на Вашем месте не сильно надеялся на решение задачи.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Нечёткий текстовый поиск в одной колонке
 
Интересует так же что из всего написанного считать дублями, а что нет и почему именно так. Но предвидя что-то вроде "все, что содержит фигурка, God of war и Шуруповерт" отвечу: очень плохая идея искать такие дубли, т.к. Excel не умеет различать настолько правильно все возможные варианты и даже если написать код, который будет делать что-то подобное, то процент ошибок будет непозволительно велик.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
[ Закрыто] макрос для ввода текста во все ячейки, в которых содержится условие
 
Цитата
CAN1 написал:
одной не сложной для вас идейки
откуда такая уверенность, если сами сделать не смогли? Маленький совет: если не можете сделать сами не судите о сложности задачи, иначе попадете только на негатив.
И пример данных не помешал бы - не видя данных ни о каком коде и речи быть не может, это пустая трата времени в данном случае. Например, Вы пишите:
Цитата
CAN1 написал:
главное, что бы во все 10 строк макрос написал заданный мной одинаковый текст
Код
Range("A1:A10").Value = "одинаковый текст"

вряд ли этот ответ подойдет, верно?
Изменено: Дмитрий(The_Prist) Щербаков - 15 Дек 2019 13:09:59
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Цитата
ocet p написал:
   a1 = Range("A1")
   Set a11 = Range("A1")
   On Error Resume Next
   isObj = a1 Is a11 ' => Run-Time error '424': => "Object required"
Если честно не понял что за сравнение здесь при помощи Is и зачем вообще приведен столь некорректный пример? Возможно недопонял сути сообщения, но... Is предназначен для сравнения ДВУХ объектов, а не двух переменных любого содержания и приводить пример такого неверного сравнения не вижу смысла.
Код
a1 = Range("A1")
это присвоение переменной значения по умолчанию для объекта Range. Т.к. нет ключевого Set. Т.е. по сути там либо текст, либо число(в зависимости от того, что в .Value). Но никак не объект.
Код
Set a11 = Range("A1")
это ссылка на сам объект. Т.е. Вы сравниваете объект и число. Конечно, будет ошибка.
А правильное сравнение я уже приводил и чуть его расширю(уравняем шансы сравнения переменных, так сказать):
Код
Sub IsNotIs()
    Dim rc As Range, rc2 As Range
    Set rc = Range("A1") 'везде один и тот же диапазон
    Set rc2 = Range("A1")
    Debug.Print ObjPtr(rc)
    Debug.Print ObjPtr(Range("A1"))
    Debug.Print ObjPtr(rc2)
    Debug.Print rc Is Range("A1") 'не равны
    Debug.Print rc Is rc2 'не равны
End Sub
Как видно, переменные rc и rc2 созданы через Set к одному объекту. Но сравнение Is считает их разными, потому что каждый раз создается НОВАЯ ссылка на объект Range, т.к. он по сути каждый раз создается "на лету". Нет в Excel статичной ссылки на каждый возможный вариант диапазонов, поэтому и создается такая ссылка в памяти постоянно разная при создании переменных для Range. При этом для всех ячеек листа(Cells) тоже самое правило.
Изменено: Дмитрий(The_Prist) Щербаков - 13 Дек 2019 17:44:20
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Цитата
ocet p написал:
Сколько раз вы и другие (люди) писали Range("A1") без ".Value" при написании кода
всегда стараюсь указывать. И вот почему:
Код
Sub ValueOrNotValue()
    Range("A1:B2").Formula = "1"
    Range("A1:A2") = Range("A1:A2")
End Sub
посмотрите на значение ячеек A1:A2 до Range("A1:A2") = Range("A1:A2") и после :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
Цитата
БМВ написал:
кажется про листы это лишнее
ну как бы...И да и нет :) Тут тема уже иная, согласен. Просто вспомнилось и надо было бы сразу пояснить до кучи, что имею ввиду под листами. Это по сути будет вдогонку текущей теме на всякий случай.
Не все знают, что не все листы одинаковые: есть листы рабочие(Worksheet), есть листы диаграмм(Chart), есть листы макросов и диалогов.
Так вот, если пытаться сравнить с листа макросов, например, то получим-таки False:
Код
Sub IsNotIs2()
    Debug.Print ObjPtr(ActiveCell.Worksheet)
    Debug.Print ObjPtr(ActiveSheet)
    Debug.Print ActiveCell.Worksheet Is ActiveSheet
End Sub
потому что ActiveCell.Worksheet не всегда одно и тоже, что ActiveSheet
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Оператор "Is" в VBA возвращает "False" для одинаковых диапазонов
 
При обращении к листам и диапазонам создаются всегда разные адреса в памяти:
Код
Sub IsNotIs()
    Dim rc As Range, rc2 As Range
    Set rc = Range("A1")
    Set rc2 = Range("A1")
    Debug.Print ObjPtr(rc)
    Debug.Print ObjPtr(Range("A1"))
    Debug.Print ObjPtr(rc2)
    Debug.Print rc Is Range("A1")
End Sub

а это значит, что IS будет считать их разными, т.к. сравнивает по тому же принципу, что и ObjPtr. Поэтому в выше приведенном коде они не будет равны. Поэтому сравнивать объекты некоторых коллекций Excel лучше по именам и полным адресам:
Код
Sub IsAddr()
    Dim rc As Range
    Set rc = Range("A1")
    Debug.Print ObjPtr(rc)
    Debug.Print ObjPtr(Range("A1"))
    Debug.Print rc.Address(external:=True) = Range("A1").Address(external:=True)
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
следующее значение ВПР при повторе
 
Цитата
Kazanildarik написал:
Стресовая ситуация на работе сложилась, времени не дает руководство совсем на раздумья
а на поиск по форуму дает? Например, можно поискать по фразе: ВПР с поиском всех значений
Удивительно, но тема далеко не нова...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Координатное выделение. Макрос по событию листа
 
Цитата
OblivionR написал:
при выделении одной ячейки
Тогда проясним логику кода. Потому что убирая эту строку происходит следующее:
1. выделили любую ячейку, вызвав тем самым событие листа Worksheet_SelectionChange. Допустим, это будет ячейка А1.
2. после этого мы не определяем сколько выделено ячеек. Поэтому у нас формируется новый диапазон:
Код
Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow))
это пересечение строки и столбца выделенной ячейки и диапазона "A1:g10", т.е. диапазон "$C$1:$C$10,$A$5:$G$5".
А теперь внимание - что мы делаем с этим диапазоном? Правильно, применяя метод Select выделяем. Что в итоге опять же провоцирует вызов события Worksheet_SelectionChange, но теперь уже в качестве целевых ячеек(Target) будет весь диапазон "$C$1:$C$10,$A$5:$G$5". А уж при использовании Intersect он превращается в диапазон "A1:g10", т.к. с ним пересекаются все его ячейки. Вот и ошибка.
А запрет выполнения процедуры при выделении более одной ячейки второй вызов Worksheet_SelectionChange предотвращает.
И в свете озвученного выше правильнее было бы записать код таким образом:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim WorkRange As Range
    'отключаем отслеживание событий
    Application.EnableEvents = False
    Set WorkRange = Range("A1:g10")
    Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow)).Select
    'возвращаем отслеживание событий
    'обязательно, иначе в следующий раз выделение не сработает
    Application.EnableEvents = True
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 11 Дек 2019 19:52:43
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Координатное выделение. Макрос по событию листа
 
ну если нужно именно коорд.выделение, то вполне хватит такого кода:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim WorkRange As Range, rr As Range
    Set WorkRange = Range("A1:g10")
    Set rr = Intersect(WorkRange, Union(Target.Cells(1, 1).EntireColumn, Target.Cells(1, 1).EntireRow))
    If Not rr Is Nothing Then rr.Select
End Sub
хотя все равно не очень понятно как быть, если выделена ячейка вне заданного диапазона.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Координатное выделение. Макрос по событию листа
 
какую цель преследует этот кусок кода?
Цитата
OblivionR написал:
Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow)).Select
что он должен по Вашему делать при выделении ячеек внутри "A1:g10" и вне этого диапазона?

P.S. Даже удивительно, как тема с таким названием прожила так долго и даже удостоилась ответа от модератора без замечания... :D  
Изменено: Дмитрий(The_Prist) Щербаков - 11 Дек 2019 08:25:57
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как превратить уровневую таблицу 1С в обычную плоскую.
 
Цитата
Haemoglobin написал:
Что входит в "техническую информацию" - можно только догадываться
Поверьте - ничего страшного там не собирается. Просто тем, кто использует надстройку будут присылаться письма по предложениям от системы ФД и возможно, будут поступать аналогичные звонки.
Цитата
Haemoglobin написал:
вы рискуете этой надстройкой разгласить конфиденциальную информацию
Никакие конф.данные не собираются и не отсылаются. Максимум - email и телефон и те Вы указываете на сайте, когда регистрируетесь, если я правильно помню. Только вот не уверен, что эти данные нужны для всего функционала надстройки(давно это было). Какой-то функционал вообще работает только для активных подписчиков(типа шаблоны документов).
Знаю, т.к. разрабатывал надстройку я специально для ФД, видео записывал тоже я :)
Изменено: Дмитрий(The_Prist) Щербаков - 11 Дек 2019 08:21:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Уведомление об открытии файла Excel
 
Цитата
Jenya1980 написал:
кто открыл файл
а что считать открытием? В Outlook, например, есть функция предпросмотра и многие через неё файлы просматривают. В предпросмотре макрос не сработает.
Да и сам формат файла неизвестен. Это Excel или еще какой-то файл?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Сумма 12 последовательных ячеек в диапазоне из 36 ячеек, если сумма этих 12 ячеек превышает конкретное значение
 
Цитата
Bigun написал:
если сумма этих 12 значений превысит 1 000 000
Цитата
Bigun написал:
ячейку из этих 12, в которой сумма превысила 1 млн
не совсем понятно из примера по какому признаку подсвечивается эта самая ячейка. Да и остальные тоже. В примере подсвечены правильные ячейки? Почему тогда в 3-ей строке отмечено 12 ячеек, хотя 1 млн. был уже на 11-ой?
7-я строка и того лучше - зачем тогда нужны еще 11 ячеек, если 1 млн в первой же? И что и как делать, если 1 млн будет не в первой же ячейке, а во второй, третьей?
И что делать, если такие диапазоны(по 12 ячеек выше 1 млн) в одной строке встречаются более одного раза?
Изменено: Дмитрий(The_Prist) Щербаков - 10 Дек 2019 18:19:55
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Некорректное окрашивание диапазона ячеек без жесткой привязки ссылок
 
кстати, еще один момент: "0" не одно и тоже, что 0. В первом случае это текст, во втором число. У Вас просто есть формулы, которые возвращают именно "0" и они не будут восприниматься УФ как корректное сравнение с числом 0.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Некорректное окрашивание диапазона ячеек без жесткой привязки ссылок
 
В общем если приведете данные в порядок и везде будет по 7 строк, то можно использовать такую формулу(выделив предварительно для создания правила всю таблицу, начиная с D3):
Код
=СМЕЩ(D3;5-ОСТАТ(СТРОКА(C7);7);ОСТАТ(СТОЛБЕЦ(C1);2)-1)=0

Если вдруг строк будет только 6 везде, то формула будет такой:
Код
=СМЕЩ(D3;4-ОСТАТ(СТРОКА(C6);6);ОСТАТ(СТОЛБЕЦ(C1);2)-1)=0
Изменено: Дмитрий(The_Prist) Щербаков - 9 Дек 2019 18:44:58
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Некорректное окрашивание диапазона ячеек без жесткой привязки ссылок
 
А такой бардак в данных реально имеет место быть? Я про то, что где-то 7 строк данных, где-то 6...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Некорректное окрашивание диапазона ячеек без жесткой привязки ссылок
 
Я же выше написал как - правильно формулу задать. Если диапазон для окрашивания начинается с 3-ей строки столбца D - то эта ячейка и должна быть частью формулы, а не любая ячейка из этого диапазона. Т.е. верхняя левая ячейка должна входить в условие.
Хотя пардон, не сразу въехал в это
Цитата
roeline написал:
Мне нужно увидеть значение в ячейке D8 и в зависимости от того, какое значение там будет, окрасить весь диапазон D3:E9 в определённый цвет
Тогда тут мало вариантов - D8 в любом случае должна иметь жесткую привязку, ибо формулы УФ вычисляются для каждой ячейки диапазона по своим правилам.
Изменено: Дмитрий(The_Prist) Щербаков - 9 Дек 2019 17:11:24
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
UDF в умных таблицах не пересчитываются автоматически, cо строкой Application.Volatile в коде пользовательской функции возникают ошибки
 
Искать ошибку в коде без файла бессмысленно. Надо понимать и видеть где она работает и куда надо скопировать, чтобы перестала работать. Вдруг копируется туда, где просто нет какой-либо таблицы или листа, вот и ошибка?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Некорректное окрашивание диапазона ячеек без жесткой привязки ссылок
 
Диапазон применения: =$D$3:$E$9
А формула для него у Вас: =$D$8=0
Т.е. просматривается все со смещением в 5 строк. Создайте нормальную формулу по всем правилам и тогда копирование ячеек даст корректный результат закрашивания. В Вашем случае надо записать формулу так: =D3=0
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
UDF в умных таблицах не пересчитываются автоматически, cо строкой Application.Volatile в коде пользовательской функции возникают ошибки
 
Цитата
lodman_geo написал:
можно пример
нет. Пример от Вас как раз нужен. Потому что это учитывается логикой самой функции. Мы же её не видим, следовательно и посоветовать можем только что-то обобщенное.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
UDF в умных таблицах не пересчитываются автоматически, cо строкой Application.Volatile в коде пользовательской функции возникают ошибки
 
Цитата
lodman_geo написал:
можно ли обойтись без Application.Volatile
если хотите, чтобы функции пересчитывались - нет. Хотя нет, можно. Использовать доп.параметр.  Здесь приводил подробный пример: Что такое функция пользователя(UDF)? Ищите в заголовке Обновление расчетов функции пользователя UDF(автопересчет)
Но ошибка явно не в этой строке, а в самих функциях. Вероятно, они просто не учитывают использование их в умной таблице или по некоему другому сценарию.  
Изменено: Дмитрий(The_Prist) Щербаков - 9 Дек 2019 11:50:54
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка "can't find project or library" при работе на Офис 16
 
Убедитесь в отсутствии контролов типа ActiveX. На рабочем ПК(где файл работает) сделайте следующее: в редакторе VBE -Debug -Compile VBA Project(вместо VBA Project может быть имя проекта, если оно было задано). Сохраните файл. Попробуйте запустить на другом ПК.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отключить преобразование содержимого ячейки в дату при редактировании
 
Цитата
cuprum написал:
не помешает ли этот апостроф при дальнейших операциях с данными
смотря что именно понимать под "помешает". Ведущий апостроф дает понять Excel, что в ячейке текст. Если это не проблема - то в остальном апостроф не мешает, т.к. фактически не воспринимается как часть текста ячейки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Неверная работа макроса отправки почты
 
Цитата
Антон91 написал:
но ничего не происходит, письмо не создается
в черновиках не пробовали смотреть? Может на момент запуска кода Outlook был не запущен и тогда письмо отображается и Outlook закрывается, никакой отправки нет. Попробуйте убрать эти строки:
Код
Set objOutlookApp = Nothing: Set objMail = Nothing
это не даст закрыться приложению Outlook и Вы увидите свое созданное письмо.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Возведение степени в степень, Степень в степени
 
Цитата
Николай Залюбовский написал:
это задание на зачет в университете.
и означает оно то, что решение надо давать в том виде, в котором оно проходилось и описано в методичке, а не в котором его дадут на форуме :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
удаление листов в эксель
 
Витя, здесь я бы не согласился, т.к. задача просто разбивается на две подзадачи и по сути даже на одну: правильное удаление листов. Сохранение в PDF было изначально. Т.е. сохранить в PDF только листы, отвечающие критериям, а остальные удалить. А вот зачем две темы было создавать с одной и той же задачей - вот здесь я уже не понимаю.
Код из второй темы готов выложить здесь после того, как автор определиться и здесь уже напишет что вообще все-таки надо в итоге: удалять листы с НД или удалять ячейки или еще чего там надо делать.
Изменено: Дмитрий(The_Prist) Щербаков - 6 Дек 2019 12:18:43
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Скрытие строк и столбцов по значению ячеек
 
Цитата
Ejeur написал:
чтобы открытие группировки не влияло на скрытые столбцы?
никак, если только не отказаться от группировки. Потому что группировка это тоже скрытие/отображение столбцов, объединенных в группу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
В каком порядке отсортировано "Мое избраннное"?
 
По дате добавления в избранное
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Извлечь уникальные
 
Цитата
Jack Famous написал:
спорно, т.к. они стали дубликатами уже при вставке
не соглашусь. По идее данные должны возвращаться в том же виде, в котором были взяты. Если иное не озвучено как спец.функция инструмента. Здесь же происходит такое именно внутренними механизмами Excel-я и именно при вставке(как и было замечено), но все мы знаем, что виноват будет разработчик, т.к. должен был это учесть :) И я думаю Николай обязательно учтет в следующих обновлениях.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 346 След.
Наверх