Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 527 След.
Ошибка сохранения в PDF
 
И Вы реально считаете, что по одному голому коду кто-то сразу на ошибку укажет? Вы же даже текст ошибки не приложили, не говоря уже о файле: что там откуда считывается, есть ли листы, перечисленные в А4 и прочее. Судя по скрину - в файле должно быть не менее 41 листа. Иначе в какой-то момент будет ошибка обращения к несуществующему листу.
Изменено: Дмитрий(The_Prist) Щербаков - 11.02.2026 10:47:34
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Не работают формулы в файле эксель (пустые ячейки), На одном компьютере работает, а на другом нет.
 
Цитата
sokol3346 написал:
В Чём может быть проблемма?
ЕСЛИМН - поддерживается начиная с Excel 2019. Если на ПК версия ниже - получите пустую ячейку, т.к. сработает функция ЕСЛИОШИБКА
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Виртуальный диапазон из отдельных ячеек
 
Цитата
ЭксЭль написал:
я про виртуальный диапазон
да где Вы такие понятия-то берете? Виртуальный лист, виртуальный диапазон...Можете ссылку на источник кинуть, чтобы хоть знать героев в лицо, которые такое распространяют :)
Цитата
ЭксЭль написал:
Есть же в серьёзных ЯП понятие темповых объектов,
можно поподробнее? Что они из себя представляют по Вашему? Temp - временный. И по сути все объекты временные - живут до тех пор, пока программа или процедура в них нуждается.

И не знаю, сколько раз ещё надо повторить, чтобы Вы уже окончательно поняли: в случае с БДСУММ Вы ничего не сделаете из желаемого, потому что она просто не может принимать никакой иной аргумент, кроме непрерывного диапазона ячеек. Понятия виртуального диапазона ячеек в Excel в принципе нет и никак Вы его не создадите. Я же Выше написал Вам уже - на уровне реализации кодом самой этой функции просто не заложена возможность работать ни с чем, кроме реального диапазона ячеек.

Если уж заговорили про серьезные ЯП - так создайте тогда свою БДСУММ, которая будет принимать массивы. Других вариантов нет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Виртуальный диапазон из отдельных ячеек
 
Цитата
ЭксЭль написал:
Excel создает на основе объекта Range виртуальный лист со своей собственной нумерацией
бред. Это вовсе не так. Если прям по простому: Excel создает в памяти ОС ссылку на заданный диапазон. Т.е. это даже не кусок листа из заданных ячеек - это ссылка на этот кусок.
При таком присвоении:
Код
Set oRange1 = Worksheets("Лист1").Range("C1")

мы просто делаем ссылку на ячейку С1 для быстрого доступа. Никаких виртуальных массивов не создается. Это легко проверить: удаляете столбец С и Ваша oRange1 будет недоступна, т.к. исходная ячейка, на которую ведет ссылка памяти из oRange1 - удалена.

То, что Вы называете "виртуальным массивом" в VBA очень даже осязаемый массив - эти переменные так и называются. Одна беда БДСУММ - не работает с массивами в любом виде. Я выше написал - только ссылки на ячейки. Потому что так уж заложено в её реализацию. Есть формулы, которые могут в качестве аргументов принимать исключительно ссылки на диапазоны ячеек, никаких массивов. И никак это не обойти, т.к. это приведет к ошибке типов внутри выполнения функции(в том коде, который её реализует уже на недоступном для пользователя уровне).
Изменено: Дмитрий(The_Prist) Щербаков - 09.02.2026 20:58:32
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Помесячные деления на графике
 
В Вашем случае прям вот как на скрине из первого поста вряд ли получится. Сходу точно не придумалось простого решения. Это можно сделать при помощи доп.столбца с формулой, данные которого в диаграмме надо вынести на вспомогательную ось и добавить линии проекций для этого ряда. Но там визуально будет проблема - линии проекций пересекают значение по центру, а не по линиям сетки. Т.е. будет некоторое смещение.
В общем на скрине все видно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Помесячные деления на графике
 
Судя по скринам - Вам необходимо в таблицу для каждой даты добавить номера недель, ячейки с месяцами объединить. И в конструкторе диаграмм добавить линии сетки, настроив для них шаг.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Проверка наличия заголовка в умной таблице
 
Я бы все же советовал делать как-то так:
Код
    Dim rr As Range
    Set rr = Range(ThisWorkbook.Sheets(sheetNew).ListObjects(1).Name & "[verifyFull]")
    If Not rr Is Nothing Then
        MsgBox "Yes"
    Else
        MsgBox "No!"
    End If

Почему? Потому что у умных таблиц есть такое свойство для заголовков, как Visible. Т.е. заголовок можно скрыть. И тогда ни через CountIf, ни через Find Вы этот заголовок не найдете. Однако как "именованный диапазон" он будет существовать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Совместить два графика на основании двух сводных + к каждому графику свой срез
 
Я бы на Вашем месте добавил в исходные данные новый столбец с формулой, определяющей дату. И все это добро закинул в сводную - там сразу сгруппируется все по годам, кварталам, месяцам. А их уже в столбцы и анализируйте.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
[ Закрыто] Лечения от ошибки Run-time error 13 type mismatch, Правка конкретного простого макроса для лечения от ошибки Run-time error 13 type mismatch
 
Исправлено.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Заменить макросом формулы на значения в выделенных ячейках, с определенной заливкой.
 
МатросНаЗебре, поячеечно проверять ячейки на скрыты или нет долго. Есть ведь встроенные методы. К тому же, в первом сообщении у ТС-а уже есть код с моего сайта, который проходит только по видимым ячейкам. Надо только цикл добавить с определением цвета.
Pine3, в общем-то по мотивам выше представленных кодов можно было догадаться что где подменить :)
Код
Sub All_Formulas_To_Values_OnlyVisible()
    Dim rRng As Range, rArea As Range, rc As Range
    If Selection.Count = 1 Then
        Set rRng = ActiveCell
    Else
        Set rRng = Selection.SpecialCells(12)
    End If
    For Each rArea In rRng.Areas
        For Each rc In rArea.Cells
            If rc.Interior.ColorIndex = xlNone Then
                    rc.Value = rc.Value
            End If
    Next
    Next rArea
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как в listbox вывести формат для столбца как в ячейках
 
Только если массив заполнять построчно, считывая при этом либо формат ячеек, либо забирать свойство .Text
Ну или итоговый массив arr после получения построчно обрабатывать, применяя к нужным столбцах необходимый формат(при помощи той же Format).
Изменено: Дмитрий(The_Prist) Щербаков - 01.02.2026 17:01:32
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Виртуальный диапазон из отдельных ячеек
 
Цитата
ЭксЭль написал:
ВПР тоже не должен работать
с чего бы? ВПР прекрасно умеет работать с массивами - в неё это заложено. Там можно задать виртуальный массив вместо диапазона ячеек. А БДСУММ не умеет работать с массивами - только с диапазонами ячеек. Там и условия отбора тоже на основании диапазона ячеек задаются.
Рекомендую ознакомиться: Функции баз данных
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Виртуальный диапазон из отдельных ячеек
 
БДСУММ с массивами не работает, только со ссылками на ячейки. Более того - диапазон должен быть неделимым, т.е. единым.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Конвертировать таблицу из плоской в таблицу по категориям, Необходимо получить "неправильную" , но удобную для чтения, таблицу из плоской нормализованной.
 
Цитата
Владимир Пешков написал:
С плюсиками и минусами стоящими перед "Магазин" и "Категория" не прокатит.
А Вы хоть попробовали? Там в параметрах сводной уже снят пункт для печати, который запрещает выводить на печать эти плюсики и минусы(правая кнопка мыши на любой ячейке внутри сводной -Параметры сводной таблицы -вкладка Печать).
Настоятельно рекомендую Вам ознакомиться более подробно с функционалом сводных таблиц.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Конвертировать таблицу из плоской в таблицу по категориям, Необходимо получить "неправильную" , но удобную для чтения, таблицу из плоской нормализованной.
 
Цитата
Владимир Пешков написал:
Одно под другим
ну так сводная же :)
Поиграйтесь с настройками отчета
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование защищаемой ячейки
 
Цитата
KonstantinS написал:
можно запретить вставлять формулы ?
При заданных исходных данных - нет. Потому что нет возможности определить какие ячейки содержатся в буфере.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование защищаемой ячейки
 
Цитата
KonstantinS написал:
но вставлять информацию не в данный лист
Тогда только макросами. При выделении незаблокированной ячейки сбрасывать буфер обмена:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rc As Range
    For Each rc In Target.Cells
        If Not rc.Locked Then
            If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then
                Application.CutCopyMode = False
                MsgBox "В эти ячейки нельзя копировать другие ячейки", vbInformation, "www.excel-vba.ru"
                Exit Sub
            End If
        End If
    Next
End Sub

код размещается в модуле листа. Макросы должны быть разрешены.
Изменено: Дмитрий(The_Prist) Щербаков - 30.01.2026 12:37:13
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование защищаемой ячейки
 
Цитата
KonstantinS написал:
Можно ли запретить вставлять в синие ячейки данные из правых
запретите выделение заблокированных ячеек и проблема исчезнет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Защита листов книги с Элементами ActiveX, Нужно защитить листы, но чтобы ActiveX работали
 
Цитата
Ведмедица написал:
Стандартные способы защиты блокируют Элементы ActiveX
у меня не блокируют. Выбор в комбобоксе работает без проблем, флажки тоже. Так что согласен - нужен файл. Может у Вас проблема не в ActiveX, а в макросах, которые с ними взаимодействуют.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка буфера обмена
 
Для начала следует найти и отключить все сторонние приложения, которые так или иначе отслеживают буфер обмена. Например, это может быть Punto Switcher и ему подобные программы. В далекие времена Skype тоже вызывал разные ошибки буфера. Так что имеет смысл присмотреться и к других офисным программам - для чистоты эксперимента. One Note, например(хоть и не был в этом уличен, но может использовать буфер).
Цитата
asesja написал:
нужно приложить файл с примером
не думаю, что это от файла зависит. Скорее всего ошибка будет воспроизводиться на любом файле, т.к. буфер никак не связан с конкретными файлами.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Защита Листа Excel от удаления, VBA либо другим способом
 
Цитата
asesja написал:
при закрытии/открытии проверять нужные листы
я не это написал. При активации листа. Событие такое есть, выше приводил с ним пример. Вот в этот момент проверять наличие листов. Почему именно там. Потому что при удалении любого листа сразу активируется другой лист. Таким образом, сразу после удаления какого-либо нужного листа проверка это обнаружит и выдаст сообщения сразу же в этот момент, а не когда человек закрыл книгу, понаделав там дел или когда открыл - что еще хуже, т.к. вообще непонятно кто и когда накосячил.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Защита Листа Excel от удаления, VBA либо другим способом
 
Цитата
asesja написал:
Это будет умышленное удаление и понятно, что сделано специально
а другие варианты не умышленные, что ли? :) Раз даете такую волю пользователям с этими листами
Цитата
asesja написал:
ручное взаимодействие, создаются его копии с другим именем как в ручную, так и программно, используются динамические справочники с выпадающими списками и реализацией быстрого программного поиска с большим объемом данных
то тогда уж нечего им запрещать удалять листы, а просто проверять при активации любого листа наличие "неудаляемых". И если не нашли - значит лист удалили или переименовали и об этом надо сразу сообщать и пусть уже пользователь думает, что делать: закрывать без сохранения или что. Ну или Вы за него думайте, здесь уже Вам решать.
Цитата
asesja написал:
"Cancel = True" в этом событии не срабатывает,
конечно. Ведь здесь нет переменной события Cancel :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Защита Листа Excel от удаления, VBA либо другим способом
 
Да нет такого способа. Никак Вы не защитите лист от удаления. Даже если попытаться заблокировать все кнопки, отвечающие за удаление листа - выше приведенная одна строка кода все равно сделает свое дело. И неважно, из какой книги она будет вызвана.
Цитата
asesja написал:
в данном проекте мне это не очень удобно
думаете, что перехват события удаления листа будет проще? :)
Да, в новых версиях есть такое событие в книге: Workbook_SheetBeforeDelete. Но вот в чем беда - если открыть проект в Excel более старой версии - событие не будет опознано и не сработает. Следовательно, вариант тоже не рабочий.
Поэтому я все же настоятельно рекомендовал бы грамотно организовать запрет удаления именно через защиту книги.
Например, в том же модуле ЭтаКнига:
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case Sh.Name
    Case "Лист2"
    Me.Protect "1"
    Case Else
    Me.Unprotect "1"
    End Select
End Sub

Но опять же - Activeworkbook.Sheets("Лист2").Delete - сработает без проблем, если активным в момент выполнения этой строки будет другой лист.
Изменено: Дмитрий(The_Prist) Щербаков - 28.01.2026 09:16:28
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как в формулах в структурированных ссылках использовать названия столбцов получаемых из текстовых значений ячеек
 
Цитата
написал:
на больших массивах ИНДЕКС работает быстрее ВПР
не думаю. У них принцип работы одинаковый, а следовательно и поиск при равных исходных данных будет одинаково быстрый/медленный.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Защита Листа Excel от удаления, VBA либо другим способом
 
Я бы на Вашем месте все же воспользовался защитой книги. Потому что хоть к проекту и не будет доступа, никто не отменял простую строку:
Код
ActiveSheet.Delete
из любого проекта.
А скрытие и отображение листов можно отдельной формой реализовать, это не так-то сложно. А если лист всего один - так и вовсе можно это сделать одной кнопкой без всяких форм.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выбор нужного листа в выпадающем списке и переход на него
 
Может надстройка подойдет: Список листов книги  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Сбор данных из нескольких файлов
 
Цитата
написал:
Пока сам не могу разобраться в чем дело.
100% в этом:
Цитата
написал:
lLastRow = ThisWorkbook.Sheets(ЛистВставки).Cells(Rows.Count, ДиапазонВставки).End(xlUp).Row
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Извлечение цифр из строки, Извлечение цифр из строки
 
Как получить слово после последнего пробела
Код
=ПОДСТАВИТЬ(ПСТР(ПРАВСИМВ(" "&ПОДСТАВИТЬ(B2;"_";ПОВТОР("_";999));999*1);1;999);"_";"")
но это будет текст. Если необходимо в ячейку возвращать именно сумму числом - то пару символов надо добавить:
Код
=--ПОДСТАВИТЬ(ПСТР(ПРАВСИМВ(" "&ПОДСТАВИТЬ(B2;"_";ПОВТОР("_";999));999*1);1;999);"_";"")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрофункция ВЫЧИСЛИТЬ() не обновляет значение автоматически
 
Добавьте в именованную формулу любую "летучую" функцию, которая не будет влиять на результат. Например, ТДАТА:
Код
=ВЫЧИСЛИТЬ(Лист1!$D$1)+(ТДАТА()*0)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Создать DLL (C++) для Excel 2016
 
А запрос в чем, если не надо учить языкам? В том, как написать DLL на C++? Без даже минимального обучения нужному языку рассказывать нечего :)
Цитата
A-Soft написал:
Обычные DLL не принимает Excel
а обычные - это какие? Насколько знаю, правильно написанная DLL(хоть на паскале) нормально подключается к той программе, под которую написана. Даже на VB можно это сделать(через грабли, но можно).
Или хотите такую, которая подключается просто двойным кликом по файлу?

P.S. Заказ не занимаю, если что. Просто любопытствую.
Изменено: Дмитрий(The_Prist) Щербаков - 21.01.2026 14:24:18
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 527 След.
Наверх