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

Страницы: 1
VBA и WorksheetFunction, Использование функций листа в VBA
 
Пример к прошлому сообщению.

В желтой заливке - реализация на формулах листа.
В голубой заливке - реализация на VBA.

Оригинальный документ имеет объем > 6Мб, свыше 2 тыс. строк. При открытии файла на формулах листа время составляет 19,05 с. При открытии на VBA - 28,80 с. Я хотел третий вариант - в модуле VBA применить WorksheetFunction и сравнить время загрузки.

Конечная идея - защитить данный файл от возможности его частичного или полного копирования, использования другими лицами в прочих задачах. Защищаю свою "интеллектуальную собственность", модуль с функциями хочу вынести в PERSONAL библиотеку, которую защищу от просмотра.
Изменено: Владислав Сескутов - 19.01.2021 14:47:56 (Добавил файл)
VBA и WorksheetFunction, Использование функций листа в VBA
 
Здравствуйте,

необходимо в VBA трансформировать формулу:

=СУММ(ИНДЕКС(AR23:BX23;ПОИСКПОЗ($R$11;$AR$14:$BX$14;0)):ИНДЕКС(AR23:BX23;ПОИСКПОЗ($T$11;$AR$14:$BX$14;0)))

мой вариант (но не работает):
Код
Public Function CDSDayReport_a1(DateStart As Range, DateEnd As Range, Dates As Range, Volumes As Range)
    CDSDayReport_a1 = WorksheetFunction.Sum(WorksheetFunction.Index(Volumes, WorksheetFunction.Match(DateStart, Dates, 0)) : WorksheetFunction.Index(Volumes, WorksheetFunction.Match(DateEnd, Dates, 0)))
End Function


В чём-то есть "ньюанс". Поэтапно записывал, работало, как дошёл до .Sum так сломалось. Возможно необходимо цикл вместо Суммы. Я незнаю.

Подскажите, кто знает.

Получить полное значение ячейки, как оно отображается на экране.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Видимое значение ячейки в реальное
Попробовал.
Одна проблема:

- формула на обновляется при изменении значения в ссылочной ячейке. Приходится войти F2, ENTER. После этого обновляется.

Исправить можно?
Получить полное значение ячейки, как оно отображается на экране.
 
Спасибо.
Пользовательская функция - то, что нужно. Оптимально для меня.
Получить полное значение ячейки, как оно отображается на экране.
 
ячейка.Text

Формула? Или VBA?
Получить полное значение ячейки, как оно отображается на экране.
 
Доброго дня.

Вопрос следующий:

на листе установлены свойства файла "Точность как на экране", в ячейках столбца вручную устанавливается формат числа с разной разрядностью (0, 2, 3, 4 и т.д.), таким образом необходимо получить формулой или через свойства в VBA значение в ячейке так, как оно отображается.
Например:
"125,1200" - 4 разряда
"125,12" - 2 разряда
"125,000" - 3 разряда

Цель - обработка достаточной разрядности, чтобы на этапе ввода отсечь ошибки вводимых значений.
Закрасить ячейку, если ее значение есть в указанном диапазоне
 
Доброго дня.

На мой взгляд простое и работающее решение под изложенную задачу - условное форматирование.

Я использую такое при отслеживании разрядности значений по разным строкам столбца (от 6 до 0 знаков), если в определенном столбце значение равно заданному критерию, то нужные ячейки из определенного диапазона окрашиваются в выбранный в УФ цвет.

В моём файле 12 тыс. строк и столбцов уже A - DWA

Всё работает стандартными средствами Excel.
Можно ли применить динамические имена в условном форматировании
 
Здравствуйте,

имеется задача.

Большая таблица с ячейками условного форматирования. Периодически возникает необходимость вставить дополнительные строки внутри имеющейся таблицы. Диапазоны, заданные в критериях условного форматирования прерываются в данном месте и дробятся, формулы становятся громоздкими плохо читабельны и возникает необходимость вручную корректировать критерии во всех ячейках, содержащих условное форматирование.

Хочется:
- задать именованный диапазон на который будет распространяться заданное условие форматирования. Это Имя применить при описании критериев УФ. При добавлении строки внутрь таблицы корректировать Имя в одном месте, чтобы УФ при этом "не ломалось".

Сейчас при описанных действиях после нажатия кнопки "Применить" диапазон, заданный Именем автоматически заменяется на адресацию.

Как это обойти?
VBA и условное форматирование., Получить список условий форматирования в отдельном листе
 
В тему условного форматирования такой вопрос:
- как на отдельный лист получить список всех "условий форматирования" на рабочем листе.
Например:
столбец 1          / столбец 2             / столбец 3
адрес                / формула              / диапазон на
ячейки,             /  условия               /  который
содержащей    /                               /  действует
условие            /                               /  условие
-------------------------------------------------
$F$10               /   = $O10<6            /  = $F$1:$F$11809

Пытался найти ответ на свой вопрос, зайдя в редактор VBA, полез в .Sheets.Item(1).Cells.FormatConditions.Item их там 256.
Внутри каждого - "темный лес, непролазный".
В общем - застрял.

Еще вопрос:
- как ненужные мне условия из полученного списка, удалить на рабочем листе.

С уважением,
Владислав            
Пльзовательской функции какой тип присвоить: Integer или Double
 
Еще вопрос, как заставить работать в моём случае встроенную функцию с передачей ParamArray как аргумента, без написания цикла?

Типа:
CDSfiltr1_1 = WorksheetFunction.Sum(myArray)

Спасибо.
Пльзовательской функции какой тип присвоить: Integer или Double
 
Спасибо за помощь.
А можно чуть подробней про волшебство # перед скобкой в описании функции. Дело изменилось именно благодаря ей. Тип возвращаемых данных я прежде менял и даже убирал из объявления, но всё стало работать именно когда поставил #.

Спасибо.
Пльзовательской функции какой тип присвоить: Integer или Double
 
Здравствуйте,
написал пользовательскую функцию с использованием WorksheetFunction.Sum.
При тестировании получил неожиданный результат: при исходных числах в сумме больше 40000 результат ошибка; при задании исходных диапазонов по одной ячейке - работает, при задании этих же ячеек диапазоном - ошибка.
Прошу помощи разобраться в функцией.
Страницы: 1
Наверх