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

Страницы: 1 2 След.
Разворачивание нескольких полей вложенной таблицы PQ
 
Здравствуйте! При использовании PQ регулярно встает задача развернуть вложенную таблицу. Когда нужно вытащить одно поле - вопросов нет. А когда их много, приходится дублировать шаги, что иногда приводит к путанице и всегда к увеличению времени выполнения запроса. Задал вопрос ИИ по составлению функции, которая на входе примет имя поля с вложенной таблицей и список полей этой вложенной таблицы, которые нужно развернуть, создать одноименные поля в результирующей таблице и в этих полях объединить значения через указанный разделитель. Получил такой код функции:
Код
let
    // Определяем функцию
    CombineNestedFields = (InputTable as table, NestedColumnName as text, FieldNames as list) as table =>
    let
        // Разворачиваем вложенную таблицу
        ExpandedTable = Table.ExpandTableColumn(InputTable, NestedColumnName, FieldNames),
        
        // Объединяем строки из каждого указанного поля
        CombinedColumns = List.Transform(FieldNames, (fieldName) =>
            Table.AddColumn(ExpandedTable, "Combined_" & fieldName, each Text.Combine(Record.FieldValues(_, fieldName), ", "), type text)
        ),
        
        // Убираем дубликаты и оставляем только нужные столбцы
        FinalTable = List.Accumulate(CombinedColumns, InputTable, (state, current) => Table.RemoveColumns(state, FieldNames))
    in
        FinalTable
in
    CombineNestedFields
Код применения функции
Код
let
    Source = ... , // ваш источник данных
    Result = CombineNestedFields(Source, "Табл", {"Поле1", "Поле2"}) // замените на имя вашего столбца с вложенной таблицей и нужные поля
in
    Result

Но при использовании возникает ошибка, что "Поле1" не существует.
Прошу помощи в корректировке функции и ее применения. Спасибо.
Сохранение функций PQ
 
Здравствуйте! Подскажите, пожалуйста, возможно ли сохранить пользовательские функции PQ аналогично пользовательским функциям Excel в надстройку, чтобы можно было ими пользоваться в любом файле? И если можно, то как это сделать? Спасибо.
Регулярное выражение для замены подстроки и смены регистра
 
Добрый день.
Использую регулярку \d+)([а-яА-Я]) для поиска подстроки с заменой $1 $2 для исправления адресов, в которых литера дома "слипается" с номером (типа "дом 5а" или "5А". То есть просто вставляю пробел. Но хотелось бы привести литеру к нижнему регистру, чтобы в обоих случаях получалось "дом 5 а". И никак не получается сменить регистр. Прошу помочь.
Спасибо!
В PowerQuery отображаются не все запросы БД
 
Добрый день, гуру!
Если вопрос не по адресу, прошу модераторов простить.
Ситуация такая: из БД Access данные выгружаются в Excel через PQ. Раньше сталкивался с тем, что долго обрабатываются в PQ, поэтому максимум обработки задаю в БД, формируя там запросы, а уже их и выгружаю.
Но почему-то не все запросы, сделанные в БД, отображаются в PQ и, следовательно, не выгружаются в Excel. На картинках списки запросов в БД и PQ, выделены запросы, которые мне нужны для выгрузки.
Я предположил, что запросы на объединение не выгружаются, а также запросы с пользовательскими функциями (в приложенном документе текст запроса на выборку с включением пользовательской функции - своего рода "множественный ВПР"). Использование этой функции в Excel или через объединение таблиц в PQ сильно тормозит работу.
Собственно, вопрос: я прав, что пользовательские функции и запросы "не на выборку" не могут выгружаться? Если это так, есть ли способ обойти это ограничение?
Спасибо!
Подсчет количества уникальных значений из нескольких диапазонов по условию
 
Добрый день, уважаемые мастера! Прошу помочь.
Используется Excel2016.
Имеется несколько таблиц на разных листах ("умные таблицы") - это выгрузки, сделанные из PQ. Значения могут дублироваться как в рамках одной таблицы, так и в разных. Стоит задача подсчитать количество уникальных значений, учитывая условия, указанные на листе "Результат". То есть, если в столбце "Дата" любой таблицы значение попадает в указанный диапазон И в столбце "Имена" значение равно указанному, значение из столбца "Данные1(2,3)" нужно учитывать при подсчете.
Пока эту задачу я решал так: фильтровал каждую таблицу поочередно, копировал отфильтрованные данные на новый лист и удалял дубликаты. Естественно, очень непродуктивно, в том числе потому что при изменении условий фильтра все приходится повторять. Надеюсь понятно изложил ))
Желательно использовать формулы, хотя возможно и PQ.
Заранее спасибо откликнувшимся!
Ошибка в PQ "Expression.Error: Индекс находится за пределами границ записи", При загрузке отдельных таблиц из БД в PQ возникает ошибка
 
Добрый день!
Из БД в акссесс в excel-файл должны выгружаться через PQ отдельные данные. Часть таблиц выгружается нормально, но большинство выдает ошибку Expression.Error: Индекс находится за пределами границ записи (пример ошибки на скрине, код запроса ниже).

Поиск такой ошибки в инете дал только совет: проверить имена полей в таблице БД. Но имена полей нормальные, никаких спецсимволов нет.
В чем может быть причина такой ошибки?
Заранее благодарен.
Код
let
    Источник = Access.Database(File.Contents("C:\Users\a.kontar\Desktop\Прототип БД лицензий.accdb"), [CreateNavigationProperties=true]),
    _Лицензии = Источник{[Schema="",Item="Лицензии"]}[Data]
in
    _Лицензии
Исправление UDF (склонение по падежам), UDF работает некорректно
 
Всем добрый день. О склонении по падежам уже немало поднято тем, но применить для своей задачи удалось немного. Передо мной стоит задача склонять по падежам названия организаций. Я сделал функцию, вложил ее в надстройку. Логика работы функции такая: название (например, муниципальное учреждение "Школа №15" делится на части по первой кавычке: муниципальное учреждение - и "Школа №15"), затем первая часть разбивается по словам, каждое слово ищется в словаре и по принципу ВПР заменяется на соответствующее. Если кавычки нет, то берется все название целиком. Затем выбранные слова сцепляются между собой и потом со второй частью, находящейся в кавычках.
Словарь находится в файле надстройки на листе "Справочник".
Проблема в том, что если в файле, в котором я применяю функцию, нет листа "Справочник", функция не срабатывает.
Прошу помочь решить эту проблему. Также буду признателен за любые предложения по оптимизации кода функции. В том числе, мне кажется, лучше если словарь будет загружаться в память однократно, а то сейчас по логике функции он подгружается при каждом ее использовании.
Собрать уникальные значения в одну ячейку макросом
 
Добрый день, уважаемые форумчане!
Что есть: таблица объектов с уникальными идентификаторами, таблица событий, случившихся с этими объектами. События объединены в группы. Общее число групп известно - их около 40. С каждым объектом могут происходить события как из одной группы, так и из разных, а могут не происходить вовсе. Таблицы разнесены по разным листам.
Передо мной стоит задача: в таблице объектов в одной ячейке перечислить ВСЕ группы событий, случившихся с ним. При этом если с одним объектом случаются несколько событий одной группы, то группа должна указываться только один раз. Перечень групп в этой ячейке должен быть разделен переводом строки (Alt-Enter).
Я пробовал использовать множественный ВПР из Приемов на этом сайте и функции из Plex, но качественного результата не получил. В частности, если у объекта только одно событие (естественно, только одна группа), то значение не подгрузилось.
Используется Excel16.
Пример, сделанный вручную, "как хочется, чтобы было", приложен.
Очень надеюсь на помощь гуру. Заранее благодарю.
Изменено: vikttur - 06.07.2021 12:52:49
Подключение в Excel к Access - некорректно отображаются данные при получении данных
 
Добрый день, уважаемые форумчане. Столкнулся с такой "бедой".
Имеется база данных access (приложена в архивированном виде) и файл excel. В excel-вском файле имеется подключение к одной из таблиц БД для регулярного обновления. В передаваемой таблице (Таблица1) одно из полей (Поле3) берет данные из Таблицы2. При обновлении данных в excel в соответствующем столбце отображаются не значения, а идентификаторы связанных записей.
Прошу помощи: как исправить подключение или что поменять в БД, чтобы в файле excel отображалась "значимая" информация. Заранее спасибо.
Оптимизация формулы склонения слов, склонение названий на основе умной таблицы
 
Добрый день, уважаемые форумчане!
Стоит задача: названия образовательных учреждений просклонять (вывести названия в родительном и дательном падежах). Для этого сформирован "словарь" наиболее употребительных в названиях слов (в примере таблица I2:K32). Склоняться должны названия, НЕ включенные в кавычки.
Те формулы, которые сейчас используются (ячейки А5 и А6), работают, но если необходимо пополнить словарь, то нужно долго пополнять эти формулы, дописывая недостающие значения.
Вопрос: можно ли оптимизировать эти формулы таким образом, чтобы они обращались к "умной таблице" независимо от ее размера?
Спасибо.
Пожелание к надстройке, Склонение произвольных словосочетаний
 
Надстройка с каждой версией все лучше и лучше. Спасибо, Николай, за Ваш труд.
Мне лично не хватает возможности просклонять наименования компаний, имеющихся в таблице. Я нашел функции склонения ФИО, но с произвольными сочетаниями слов они не работают. Принцип работы я вижу такой: пользователь создает "словарь" (например, "Общество", "Компания", "Фирма" и т.п.) и указывает требуемые формы в нужных падежах. А функция "подтягивает" найденное в наименовании слово (слова) и выводит в нужной форме. То, что в "кавычках", склоняться не должно.
Наличие такой возможности сильно облегчит работу.
Использование функции из надстройки PLEX в коде
 
Добрый день.
В коде формы используется:    
Код
.Cells(iRow, 4).FormulaLocal = "=FIO(""" & BaseForm.tb_Familia.Value & """;""Р"")"
.Cells(iRow, 4).Value = .Cells(iRow, 4).Value
.Cells(iRow, 5).FormulaLocal = "=FIO(""" & BaseForm.tb_Familia.Value & """; ;1)"
.Cells(iRow, 5).Value = .Cells(iRow, 5).Value
FIO - функция из надстройки PLEX.
В 4 столбце в результате получается правильный результат, а в 5 выводится текст формулы =FIO("Иванов Иван Иванович"; ;1). После последовательного нажатия F2, F9, Enter формула вычисляется и выводит верный результат.
В чем причина?
Заранее спасибо.
Количество месяцев в интервале
 
Добрый день. Прошу помощи у форумчан в решении задачки:
Имеются начальная и конечная даты. Нужно узнать, сколько в этом временном интервале имеется январей, сколько февралей и т.д. Использовать формулы. Танцы с бубнами с функциями Месяц, Год у меня ни к чему не привели, смог только посчитать декабри (Год(конДата)-Год(НачДата)). А нужен расклад по всем месяцам. Помогите, пожалуйста!
Спасибо.
Изменено: kalle - 05.06.2018 19:35:21
Разные вычисления в зависимости от условия, Использование разных функций в одной ячейке в зависимости от условия
 
Добрый день.
Имеется ряд данных (в прилагаемом файле А4:А11), а также ряд условий (D5:D9). В зависимости от выполняющегося условия (проверка B1) с данными нужно выполнять разные действия (список действий Е5:Е9) и полученный результат записывать в C14.
Список условий довольно большой. Пока он не превышал 3, я справлялся, хотя получались огромные, плохочитаемые формулы, но сейчас он около 10 и это похоже не предел.
Как в одной ячейке можно использовать разные функции в зависимости от неопределенного заранее числа условий?
Помощь по макросу копирования данных из одной книги в другую
 
При помощи следующего макроса пытаюсь сделать следующее:
- открыть книгу-источник
- скопировать из нее данные
- вставить в текущую книгу
- закрыть книгу-источник.
Код
Sub Копирование()
Dim wd As String
Dim iLastRow As Integer
wd = ActiveWorkbook.Path
With Application
   .ScreenUpdating = False          
   .Calculation = xlCalculationManual 
   .DisplayAlerts = False       
    End With
Workbooks.Open Filename:=wd & "\БД.xlsm"
With Windows("БД.xlsm"  )
.Worksheets("Основной" )   .Activate
.iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
.Range("b3:b" & iLastRow).Select
.Selection.Copy
End With
Windows("Книга1.xlsm" ) .Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Windows("БД.xlsm" ) .Close
With Application
   .ScreenUpdating = True          
   .Calculation = xlCalculationAutomatic  
   .DisplayAlerts = True      
    End With
End Sub
Макрос останавливается на строке активирования листа "Основной" с ошибкой 9. Такой лист в книге БД есть. Книга БД лежит в текущей папке.
Помогите разобраться, где ошибка.

Кнопка оформления кода [МОДЕРАТОР]
Данные для расчета выбирать в зависимости от значения ячейки
 
Добрый день! Всех с праздником!
Ситуация следующая. На листах (в примере - листы 2 и 3) есть числовые данные. На листе 1 нужно получить результат обработки этих данных в зависимости от выбранного листа. Т.е. если (в примере на листе 1 залито желтым) указано имя "Лист2", то расчет должен быть с листа 2 и т.д. Листов около 15, структура данных на листах одинаковая, но количество этих данных разное.
Пытался вписать имя листа в формулу при помощи значка &, но не получилось. :cry:
Желательно формулой, а не макросом.
Спасибо
Как, посчитав данные в макросе,записать в ячейку только значение
 
Помогите, пожалуйста, сделать, чтобы формула работала в макросе, выдавая в ячейку значение.
Случай 1.
range("d4:l9")=formula="=текст формулы"

Случай 2.
dim arr
arr=formulaarray="=текст формулы"
range("d10:l15")=arr

Первый вариант считает все правильно, но в ячейку заносит формулу.
Второй случай не работает (в ячейку заносится неверный результат)
Вытащить список потенциальных должников в зависимости от даты при помощи макросов
 
Добрый день! Есть таблица, в которой фиксируются платежи клиентов (в приложенном файле лист «Основной»). Клиенты повторяются,  коды платежей – уникальные. По каждому платежу установлен плановый срок внесения денег. Когда платеж приходит, вводится дата в поле «Срок Факт». Для определения потенциальных должников (т.е. клиентов, у которых срок платежа подходит) и реальных должников (не внесших деньги) используется вспомогательное поле «Должник». В зависимости от появившегося в этом поле индикатора формируется на листе «Должники» список «КодовПлатежа» (массивом), а дальше при помощи ВПР – содержательная информация о клиенте.
Поскольку записей в «Основном» много и много чего еще в нем есть, файл разбух. Хочется избавиться от массы формул и перейти к макросам.
Прошу «перевести» формулы в поле «Должник» и на листе «Должники» в макросовый вид. При этом срок, за который нужно формировать список (в примере – 5 дней), должен вводиться пользователем с клавиатуры.
Также прошу код макроса сопроводить содержательным комментарием, потому что в макросописательстве я профан, а аналогичные задачи стоят регулярно и понадобится адаптировать макрос.
Используется Excel 2007/
Выборка из таблицы данных формулой
 
Добрый день всем!  
Есть таблица, в которой коды, много разных данных, среди которых два ряда дат. Файл приложен. Задача стоит следующая: нужно выбрать  на соседний лист (формулой, наверно, массива) список кодов, у которых в соответствующей ячейке в третьем столбце стоит дата, а в четвертом столбце даты нет. Если же в третьем столбце нет даты, код не выбирается, если есть даты и в третьем, и в четвертом - тоже не выбирается.  
Прошу подсказать формулу.  
Использую 2007. Данные оформлены как Таблица.  
Заранее благодарен откликнувшимся.
Всплывающее сообщение при изменении ячейки в зависимости от условий
 
есть таблица, в которой перечень неких объектов с определенными характеристиками. Объекты могут повторяться. Среди прочих параметров есть характеристика «Да/Нет».  
Задача стоит следующая  
при изменении ячейки в столбце "да/нет" (т.е. ввод текста «Да» или выбор из списка) должно "всплыть" сообщение «Молодец", но только в том случае, если в столбце "НомерЗаписи" число меньше 10000 (десяти тысяч). Если число больше 10000 или вводится «Нет», никаких действий не совершается.  
Сообщение информационное (с кнопкой "ОК"), при нажатии на которую (или на кнопку с крестиком "Закрыть окно") активной должна стать ячейка, удовлетворяющая следующим условиям: 1) «НомерОбъекта» совпадает, 2) в поле "Да/нет" либо пусто, либо стоит "Нет". Таких переходов может оказаться несколько.  
Возможна ситуация, что переходить будет некуда. В этом случае должно появиться сообщение "Такой записи нет", активной остается ячейка, инициировавшая поиск.  
Структура таблицы (последовательность и адреса столбцов) может измениться, поэтому прошу по возможности имена или номера столбцов объявить как переменные, чтобы легко можно было изменить код, не нарушая его работоспособности.  
Немного сумбурно, но с учетом файла и комментариев в нем, думаю, будет понятно, чего хочется.  
Заранее  спасибо
Оптимизация кода
 
Добрый день, уважаемые гуру!  
Во-первых, всех с Новым годом! Счастья и удачи в наступающем году.  
Второе: прошу помочь оптимизировать код. Задача стоит такая: из активной строки создать ее "частичную" копию в этой же таблице. Также в таблице есть несколько вычисляемых полей. Количество строк в таблице сейчас около 3000. А выполнение кода занимает примерно 2-5 минут (чересчур много!)  
Заранее благодарен.  
Код:  
Private Sub Vnep()  
 With Application  
       .ScreenUpdating = False  
       .Calculation = xlCalculationManual  
       .EnableEvents = False  
       .DisplayAlerts = False  
       .ErrorCheckingOptions.BackgroundChecking = False  
   End With  
 
m = Cells(Rows.Count, "a").End(xlUp).Row + 1  
Cells(m, "b") = Cells(ActiveCell.Row, "b")  
Cells(m, "c") = Cells(ActiveCell.Row, "c")  
Cells(m, "d") = Cells(ActiveCell.Row, "d")  
Cells(m, "e") = Cells(ActiveCell.Row, "e")  
Cells(m, "f") = Cells(ActiveCell.Row, "f")  
Cells(m, "g") = Cells(ActiveCell.Row, "g")  
Cells(m, "h") = Cells(ActiveCell.Row, "h")  
Cells(m, "j") = Cells(ActiveCell.Row, "j")  
Cells(m, "k") = Cells(ActiveCell.Row, "k")  
Cells(m, "l") = Cells(ActiveCell.Row, "l")  
Cells(m, "m") = Cells(ActiveCell.Row, "m")  
Cells(m, "n") = Cells(ActiveCell.Row, "n")  
Cells(m, "t") = Cells(ActiveCell.Row, "t")  
Cells(m, "o") = "внеп"  
Cells(m, "p") = "до"  
Cells(m, "q") = "ИП"  
 
ActiveSheet.ListObjects("Таблица1").Resize Range("$A$2:$AP" & m)  
 
With Application  
       .ScreenUpdating = True  
       .Calculation = xlCalculationAutomatic  
       .EnableEvents = True  
       .DisplayAlerts = True  
       .ErrorCheckingOptions.BackgroundChecking = True  
   End With  
Cells(m, "a") = Range("b1") + 1  
Cells(m, "a").Activate  
End Sub
Долго вносятся данные из формы
 
Уважаемые форумчане!  
Заполняю таблицу при помощи формы. На кнопке "Ввести данные" следующий код:  
Private Sub ВнестиДанные_Click()  
ScreenUpdating = False  
n = Cells(Rows.Count, 1).End(xlUp).Row + 1  
Cells(n, 1).Value = Label8.Caption  
Cells(n, "g").Value = TextBox1.Value  
Cells(n, "c").Value = TextBox2.Value  
Cells(n, "b").Value = Cells(ActiveCell.Row, "b").Value  
Cells(n, "d").Value = Cells(ActiveCell.Row, "d").Value  
Cells(n, "e").Value = Cells(ActiveCell.Row, "e").Value  
Cells(n, "f").Value = Cells(ActiveCell.Row, "f").Value  
Cells(n, "j").Value = Cells(ActiveCell.Row, "j").Value  
Cells(n, "k").Value = Cells(ActiveCell.Row, "k").Value  
Cells(n, "l").Value = Cells(ActiveCell.Row, "l").Value  
Cells(n, "m").Value = Cells(ActiveCell.Row, "m").Value  
Cells(n, "n").Value = Cells(ActiveCell.Row, "n").Value  
Cells(n, "o").Value = Cells(ActiveCell.Row, "o").Value  
Cells(n, "p").Value = Cells(ActiveCell.Row, "p").Value  
Cells(n, "q").Value = Cells(ActiveCell.Row, "q").Value  
Cells(n, "s").Value = "текст"  
Cells(n, "t").Value = ComboBox2.Value  
Cells(n, "u").Value = ComboBox1.Value  
Cells(n, "v").Value = Val(TextBox3.Value)  
Cells(n, "w").Value = TextBox4.Value  
Cells(n, "x").Value = TextBox6.Value  
Cells(n, "y").Value = TextBox5.Value  
ScreenUpdating = True  
End Sub  
Данные вносятся, но происходит это в течение нескольких минут.  
Можете подсказать, в чем загвоздка?
Количество уникальных записей по нескольким условиям
 
Прошу помочь с формулой.  
Есть таблица с повторяющимися данными. Нужно подсчитать количество уникальных данных по одному из полей, в соответствии с условиями в других полях.    
Пример приложен (формат 2007, поскольку пытался использовать формулы, не работающие в 2003).
ВПР из именованной таблицы
 
Уважаемые форумчане!  
Возникла затруднение в использовании ВПР. Используется 2007.  
Есть именованная таблица. Нужно выгружать отдельные данные из нее.  
Пишу формулу  
=ВПР(ИскомоеЗначение;ИмяТаблицы;НомерСтолбца;Ложь) - все работает как часы.  
Пишу формулу  
=ВПР(ИскомоеЗначение;ИмяТаблицы;ИмяТаблицы[ИмяСтолбца];Ложь) - ошибка.
Для моих задач удобнее использовать не НОМЕР столбца, а Имя.  
Где ошибка или может, использовать имя столбца нельзя?  
 
Заранее спасибо за помощь!
Вновь о выборке данных
 
Тема поднималась неоднократно, но приспособить решения "под себя" не получается. Поэтому привожу таблицу, максимально похожую на реальную.  
В "основной" таблице, которую заполняют пользователи (Лист 1 в приложенном файле) вносятся данные о неких продажах. Менеджер периодически смотрит "отчетную" таблицу (Лист 2). В выделенных желтым цветом ячейках вводятся даты (начало и конец отчетного интервала), в табличке ниже автоматически видны строки, выбираемые из основной таблицы, соответствующие условию (дата продажи попадает в отчетный интервал).  
В первой колонке попытался ввести формулу, но не сработало %(  
Вот примерно так.
Вновь о курсах валют
 
Понимаю, что тема автоматического "съема" курса валюты из интернета на форуме поднималась много раз. Но в основном - сайта ЦБ. Предложенные варианты с других сайтов у меня не сработали. Поэтому прошу помощи конкретно по моей задаче.  
На сайте http://tourtrans.ru в левом верхнем углу указан внутренний курс у.е. (т.е. собственный курс, по которому фирма ведет расчеты цены тура). Мне нужно макросом (или иным образом - КАК?) забирать с этого сайта курс на текущую дату и вставлять в таблицу (файл приложен).  
Использую 2007, чтобы можно было использовать сервис таблицы с автоматическим расширением и продлением формулы.  
Заранее спасибо откликнувшимся.
Использование ВПР в форме
 
Прошу помощи у уважаемых форумчан!  
На листе 1 - таблица продаж, которая заполняется через вызываемую форму, на листе 2 - прайс.  
На форме (кроме прочих контролов) комбобокс с названием товара и текстбокс с ценой. Для автоматического заполнения цены использую код:  
 
Private Function fnc_ball(y, z As String) As Integer  
z = UserForm1.ComboBox2.Value  
y = UserForm1.ComboBox2.RowSource ' Список заполняется из именованного диапазона на листе2  
fnc_ball = Application.WorksheetFunction.VLookup(z, y, 2, False)  
End Function  
 
Private Sub ComboBox2_Change()  
TextBox3.Value = fnc_ball  
End Sub  
 
Этот код не работает. Где ошибка?  
Использую 2003 и 2007
Автоматическое формирование одного файла из другого
 
Уважаемые форумчане! Помогите решить задачу:  
Имеется файл (в приложенном архиве - "Проверки"), из которого нужно сформировать новый файл с данными. Для запуска я сделал так сказать "служебный" файл (называется "Основной"), там и пишу код.  
Результирующий файл должен иметь формат CSV. Использую 2007, но в приложенном архиве сохранил файлы в формате 2003.  
При запуске кода создается файл нужной структуры, но в него не переносятся данные из файла источника.  
Заранее спасибо всем, кто поможет!
ошибка компиляции проекта
 
Файл Excel-2007 размещен в локальной сети. На всех компьютерах сети одинаковые конфигурации офиса и системы. Проект разработан на моем компьютере. Пытаюсь использовать его на другом компьютере (пока в тестовом режиме) и получаю сообщение об ошибке компиляции «Не могу найти объект или библиотеку». Ошибка (пока) обнаружена на двух элементах кода.  
Первый – в модуле «Книга» есть код  
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
Application.Calculation = xlAutomatic  
Dim x As String  
10:    strPath = "\\Server-unk\обмен унк\Новая структура каталога Отдела КИН\Базы данных и реестры\Базы ОУ\Archiv"  
   On Error Resume Next  
   x = GetAttr(strPath) And 0  
   If Err = 0 Then ' если путь существует - сохраняем копию книги  
       strDate = Format(Now, "dd/mm/yy hh-mm")  
       FileNameXls = strPath & "\" & "Копия автоматизации от " & strDate & ".xlsm"  
       ActiveWorkbook.SaveCopyAs Filename:=FileNameXls  
   Else 'если путь не существует - выводим сообщение  
       MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical  
   End If  
End Sub  
Ошибка на строке 10 (в реальном коде строки не пронумерованы, эта метка приведена здесь для удобства).  
Вторая ошибка в коде формы с множественным листбоксом. Уважаемый Prist подсказал способ ввода в одну ячейку нескольких записей из списка:  
m = ""  
For a = 0 To ListBox2.ListCount - 1  
If ListBox2.Selected(a) Then m = m & vbCrLf & ListBox2.List(a)  
Next a  
Cells(r, "AP").Value = Mid$(m, 2)  
Ошибка на функции Mid$ (только на другом компьютере, на моем все работает нормально).  
Чуть раньше вылетали ошибки на всех используемых (не объявленных явно) переменных, типа r = Cells(Rows.Count, 1).End(xlUp).Row. Пришлось все эти переменные объявить явно как Long. Вроде сработало.  
На форуме и в литературе нашел советы подключить недостающие библиотеки, но как узнать, какие библиотеки нужны?
Неправильно работает контрол
 
На форме с несколькими вкладками используются DTPicker'ы. При вводе данных в них в соответствующих ячейках почему-то обнуляются данные. Причем если на одной вкладке выставлю дату, эта дата отображается правильно, но обнуляются даты от другой вкладки. Перейдешь на другую вкладку, исправишь дату - обнулится дата с первой вкладки. Формат столбцов указан как "Дата".  
Прошу помочь. Заранее спасибо за ответы
Страницы: 1 2 След.
Loading...