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

Страницы: 1
Убрать нули в начале каждой ячейки
 
Добрый день.

Мне требовалось убрать нули, стоящие в начале ячеек одного столбца. Например, из 0051474443 и 0000895079 должно было получаться соответственно 51474443 и 895079. Эту задачу я решил через специальную вставку, прибавив ко всем ячейкам ноль. Как можно решить аналогичную задачу с помощью VBA и массива, если ячейки будут содержать не число, а текст?

Я написал вот такой код, но он не работает:
Код
Sub Macro()

Dim i As Long
Dim myArray() As Variant

myArray = ActiveSheet.ListObjects("Table1").ListColumns(1).DataBodyRange.Value

For i = LBound(myArray) To UBound(myArray)
If Len(myArray(i)) > 1 Then
Do While Left(myArray(i), 1) = 0
myArray(i) = Right(myArray(i), Len(myArray(i)) - 1)
Loop
End If
Next i
End Sub
Пример файла во вложении.
Выбор ячеек по условию и перенос в другую таблицу
 
Добрый день.
Есть две умные таблицы, размещенные на двух листах. У меня не получается написать макрос, реализующий следующую логику:

1. Из таблицы на Листе 2 выбрать ячейки из столбца Function ID, которым соответствует значение TRUE в столбце Calc. Сама таблица умная, ее границы заранее неизвестны.
2. Отобранные ячейки нужно перенести в первую ячейку столбца Function ID таблицы на Листе 1. Таблица также умная, соответственно, ее границы должны расшириться на количество строк, соответствующее количеству добавленных ячеек.

Подскажите, пожалуйста.
Очистка ранее выбранного значения Combobox при повторном открытии книги
 
Добрый день.

Имею несколько комбобоксов, берущих свои значения из именованных диапазонов нескольких умных таблиц. Начальное значение - ничего не выбрано.
Как реализовать сброс выбора значения при повторном открытии книги, чтобы книга открывалась "как новая"?

Догадываюсь, что нужно поместить код в Private Sub Workbook_Open(), но до самого кода додуматься не могу.
Пример с одним комбобоксом во вложении.
Использование именованного диапазона в свойстве ListFillRange в ComboBox
 
Добрый день.

Нужно сделать выпадающий список, ссылающийся на диапазон данных переменной длины, используя ComboBox из перечня элементов Active X.

Через Диспетчер имен я создал именованный диапазон и назвал его CostCenters, однако мне не удается вставить это имя в ListFillRange в ComboBox, оно просто не сохраняется, поле становится пустым, как только я кликаю мышкой в любом другом месте или нажимаю Enter. Если же я указываю его в виде, например, $A1:$A5, то сохраняется без проблем.

Я пытался поменять свойство ListFillRange через VBA, используя следующие варианты кода:
Код
Private Sub ComboBox1_Change()
ComboBox1.ListFillRange = "=CostCenters"
End Sub
Код
Private Sub ComboBox1_Change()
ComboBox1.ListFillRange = "CostCenters"
End Sub
и тоже безрезультатно: список пуст, в свойстве ListFillRange пусто.

Аналогично происходит и с другими именами.

Любопытно, что я скачал файл с примером, в котором использован точно такой же прием, и там свойство ListFillRange заполнено, оно никуда не исчезает, если его убрать и снова добавить.

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

Имеется список документов, каждая строка в списке состоит из ячейки с уникальным неизменным идентификатором и фиксированного количества других ячеек. Список является выгрузкой из БД и обновляется раз в сутки (затирается старый файл, выгружается новый). Фактически, в список добавляются новые строки и обновляются значения ячеек в уже имеющихся строках, за исключением уникального идентификатора. Название файла списка при этом остается неизменным.

Есть потребность добавить к списку пользовательский столбец, где указывать вручную информацию, отсутствующую в БД. Как это лучше реализовать?

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

Есть задача применить условное форматирование к ячейкам, находящимся на одной строке, но в несмежных столбцах, последовательно для нескольких идущих подряд строк. Форматирование типа Color Scale (меньшее значение зеленое, большее - красное). Иными словами, вначале применяем форматирование к ячейкам А2, С2, Е2, затем к А3, С3, Е3 и так далее, цикл должен пробежать по номерам строк от такого-то до такого-то.

Я знаю, что цикл по диапазону из одной ячейки можно создать, используя конструкцию вида Range("А" & rowNum), где rowNum - номер строки, но каков должен быть синтаксис для диапазона, если ячеек не одна, а несколько, и они несмежные?
Неправильно работает фильтрация по датам
 
Добрый день.

Есть выгрузка из внешней системы.

Задача - иметь возможность фильтровать ячейки по датам (год-месяц), в том числе, с использованием сводных таблиц.
Проблема: несмотря на то, что данные в столбцах А и С представляют собой даты, в фильтре показана группировка только в пределах 2023 года, тогда как в ячейках есть и 2022.
Ощущение, что часть ячеек - это не даты, однако проверка через ISNUMBER показывает, что это не так. Перед применением фильтров все ячейки через Paste Special принудительно переводились в числе прибавлением нуля.

Пример во вложении.
Страницы: 1
Наверх