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

Страницы: 1 2 3 4 5 6 7 8 9 След.
Как VBS-скриптом работать с уже открытыми файлами excel/word?
 
Добрый день.
Как VBS-скриптом обратиться/работать с уже открытыми файлами excel/word?

Создать новый экземпляр приложения и открыть файлы я вроде бы умею, а вот как обратиться и работать с уже открытыми файлами?
Проблема 100 (Число полученное суммированием нескольких чисел с десятичной дробью)
 
В A1 - число 100, написанное от руки
В A2 стояла формула (суммирование из шести ячеек чисел 16,6 16,6 16,7 16,7 16,7 16,7 - эти шесть чисел в своих ячейках были написаны от руки, у всех только одна цифра после запятой)
Потом стоя на A2 я сделал копирование и вставку значения сюда же.
Теперь в A1 и в A2 вроде бы одинаковые числа.

Но, Данные - Удалить дубликаты не удаляет второе число 100
Также, функция =УНИК(...) тоже не признаёт эти числа одинаковыми
А вот =СЧЁТЕСЛИМН(A1:A2;100) возвращает 2, то есть для него это одинаковые числа.

Если разархивировать файл и посмотреть в xml на A2: 100.00000000000001
А причина, почему-то от руки написанное число 16,6 в xml стоит как 16.600000000000001

Я думал, такие проблемы (связанные с хранением чисел в Excel) появляются только при сложении, отнимании, ... --> то есть как результат формулы
Но при копировании и вставки как значение - эта проблема должна были исчезнуть - Разве нет?
И в окне Excel не видно дробной части, а в xml видно
Как программно проверить наличие проверки данных на ячейке?
 
Добрый день.
Как программно проверить наличие проверки данных (Данные - Проверка данных) на ячейке?

Только прочитав Range.Validation.Type и если выдаёт ошибку - НЕТ проверки данных, а в противном случае - ЕСТЬ?  
При копировании листа условия проверки данных меняются непонятным образом
 

Добрый день.
В ячейках С2, С6, С7 и С8 установлена проверка данных (Данные --> Проверка данных) – тип “Список”, элементы списка введены вручную:
С2: А.Курбаналиев;Б.Ахмедов;2 куратора
С6: есть;нет
С7: есть;нет;не обязательно
С8: есть;нет;не обязательно

Если нажать ПКМ над именем листа --> “Переместить или копировать” --> Выбрать новую книгу и поставить галочку “Создать копию ” --> Копия листа создаётся как новая книга.

Но, в этой вновь созданной книге, почему-то самовольно поменялись условия проверки данных ячеек С6, С7 и С8 на:
А.Курбаналиев;Б.Ахмедов;2 куратора

Почему так? И как лечить?
Ведь как вы видите,
в книге нет ни макросов, ни формул, ничего такого. И список проверки данных –
это не ссылка на какой-нибудь диапазон, а введённый вручную список.

P.S. Эта маленькая часть книги, в книге-оригинале некоторые ячейки при копировании листа меняют условяи проверки даных, как я описал выше, а некоторые не меняют, и я не знаю почему одни условия меняются а другие нет.

Изменено: Бахтиёр - 11.02.2025 15:24:31
Как остановить работу одного из них нескольких запущенных VBS скриптов, не выключая компьютер?, В диспетчере задач их не отличить друг от друга.
 
Добрый день.
При включении компьютера запускаются несколько VBS скриптов.
Как остановить работу одного из них, не выключая компьютер?
В диспетчере задач их не отличить друг от друга.
RegExp. Вывести из большого текста отдельные слова, написанные через разделитель.
 
Добрый день.
Есть тексты типа:
1) Начальные несколько слов один-тринадцать-сорок-двести конечные несколько слов
2) Я-он-ты-они-все-народ конечные несколько слов
3) Начальные несколько слов Том-Билл-Джек-Джон
4) Крот-Мышь-Крыса-Кот-Лев-Тигр

Нужно с помощью регулярок получить в массив слова (mas(1)=Том mas(2)=Билл ...), написанные красным.
У меня не получается получить последнее нужное слово (двести, народ, Джон ...):
Код:
Скрытый текст
Можно ли решить задачу ТОЛЬКО с помощью регулярок (без текстовых функций VBA типа Mid, Split)? Также, не применив регулярку на результат регулярки.
VBS-скрипт открывает новый экземпляр Excel, но не подключает надстройку.
 
Добрый день.
У меня есть надстройка "Моя Надстройка" всегда подключенная к Excel.
Иногда при расчетах в больших файлах Excel задумывается на 7-8 минут.
В это время, если нужен Excel, чтобы проделать кое-что другое, пока идут эти 7-8 минут я запускаю vbs-скрипт:
Код
Set NewExcel = CreateObject("Excel.Application")
NewExcel.Workbooks.Add
NewExcel.Visible = True
Set NewExcel = Nothing
Открывается новый экземпляр Excel, но в нём не подключена надстройка (хотя в окне надстроек галочка стоит).
Чтобы новый Excel открывался с подключенной надстройкой я добавил строку:
Код
NewExcel.AddIns("Моя Надстройка").Installed = True
Это не помогло, и я добавил ещё строку и код стал таким:
Код
Set NewExcel = CreateObject("Excel.Application")
NewExcel.Workbooks.Add
NewExcel.Visible = True
NewExcel.AddIns("Моя Надстройка").Installed = False
NewExcel.AddIns("Моя Надстройка").Installed = True
Set NewExcel = Nothing
Этот код решил проблему, но меня смущает, что я сначала отключаю и потом заново подключаю надстройку.
Может можно было как-то корректнее?
Изменено: Бахтиёр - 13.06.2024 13:57:00
Подскажите ПО ЛИЧНОМУ ОПЫТУ хорошие ресурсы (Youtube и пр.) для обучения английского языка НА РУССКОМ, мой уровень - примерно Elementary
 
Подскажите ПО ЛИЧНОМУ ОПЫТУ хорошие ресурсы (ссылки) (Youtube и пр.) для обучения английского языка НА РУССКОМ.
ИМХО, мой уровень - примерно Elementary.
Должен повторить Perfect и Perfect-Continious времена, ИМХО Simple и Continious времена знаю.
Должен выучить 3 формы неправильных глаголов (нечасто встречающиеся).
Должен обогатить свой словарный запас.
Должен выучить словосочетания типа "К сожалению", "Несмотря на", "По сравнению с", "С учётом", "Как можно дольше", "Просмотрев все варианты", "Исходя из", "В том числе", "Причиной возникновения этого является" и т.д.

Заранее спасибо всем.
Можете отправить ссылки на почту (в профиле)
Изменено: Бахтиёр - 03.06.2024 14:48:34
При печати PDF-документа текст голубого цвета распечатывается еле видным, как лечить?
 
Добрый день.
При печати PDF-документа с черно-белого принтера текст голубого цвета распечатывается еле видным (один лист документа прилагаю)
При этом текст черного цвета распечатывается нормально (как обычно)
Можно как-то лечить?
Изменено: Бахтиёр - 28.05.2024 09:24:54
Проблема при заполнении заранее отформатированной как процент ячейки, Появилась с недавних пор
 
Добрый день.
Excel 365
До недавнего времени Excel вёл себя нормально:
Если на пустые ячейки применить процентный формат, и когда начинаешь заполнять эти ячейки числами --> например нажимаешь 4 --> тут же автоматом после 4 появлялся знак % и после окончания набора числа (допустим после 4 нажали 7) и нажатия Enter в ячейке появлялся 47%.

А теперь,с недавних пор (кажется после автоматического обновления Windows 10 на Windows 11, хотя офис не трогали) --> после применения процентного формата к пустой ячейке и при наборе числа знак % не появляется и после нажатия 4-->7-->Enter в ячейке появляется 4700%.

Из-за этого, теперь при наборе нужного числа в заранее отформатированной как процент пустой ячейке, приходится действовать так:
1) Нажимать ,(разделитель копеек)--->4--->7--->Enter
или же нужно набрать знак процента вручную:
2) Нажимать 4--->7--->%--->Enter

Как-то можно сделать так, чтобы Excel вёл себя как раньше?
Не могу создать гиперссылку
 
Добрый день.
Чё-то туплю и никак не могу правильно составить формулу с ГИПЕРССЫЛКА.

Нужно чтобы при нажатии ЛКМ на определенную ячейку (ячейку x) ---> Чтобы открылась книга "1.xlsx" (из папки "D:\Данные\") на листе "Для базы" на ячейке G4.

В этом случае в ячейку x какую формулу нужно написать?
=ГИПЕРССЫЛКА("'D:\Данные\[1.xlsx]Для базы'!$G$4";"Нажми")

даёт ошибку: Не удаётся открыть указанный файл
Изменено: Бахтиёр - 07.02.2024 10:47:25
Word: “Не удаётся найти приложение-сервер, исходнқй файл или элемент. Убедитесь в том ...”. Не удаётся редактировать схему.
 

Добрый день.
В прилагаемом файле имеется схема (вроде не рисунок).
У меня на моём офис 365 не получается его редактировать. На другом компе, где стоит офис постарее, она редактируется.

У меня при двойном клике мышкой выдаёт ошибку:
“Не удаётся найти приложение-сервер, исходный файл или элемент. Убедитесь в том ...”

Как лечить?
Сортировка одномерного массива (значения словаря). Не получается приспособить готовый код.
 
Добрый день.
Сохранил себе коды от Jack_Famous для сортировки массивов:
Хотел их использовать как готовые функции - передать ему массив и получить отсортированный массив.
Скрытый текст


Хочу получить массив - отсортированные значения словаря по возрастанию:
Код
Sub ssss()
Set dic = CreateObject("Scripting.Dictionary")
dic(1) = 9
dic(2) = 4
dic(3) = 15
dic(4) = 6
masDicItems = dic.Items()
'... тут я что-то должен проделать и получить допустим masDicItems2 
MsgBox Join(masDicItems2)
End Sub
Я должен получить 4 6 9 15

Как мне это получить?
Должен ли код Jack'a лежать в одной модули с моим кодом или они могут лежать на разных модулях одной надстройки?

P.S. В прилагаемой книге не работает макрос "ssss", находящийся в модули "Module1"
Изменено: Бахтиёр - 25.01.2024 15:54:07
НЕ получается использовать последний аргумент InStr для сравнений текстов без учёта регистра
 
Добрый вечер.
Макрос:
Код
Sub dfdf()
x = InStr("Акробат", "а", 0)
MsgBox x
End Sub
Не выводит ничего: ни ошибки, ни результата.

А выполнение на окне Immediate:
Код
? InStr("Акробат", "а", 0)
Выдаёт ошибку: Type mismatch

Если убрать последний аргумент - и макрос и окно работают.

Как корректно пользоваться последним аргументом InStr для анализа вхождения текста в другой текст без учёта регистра?
Изменено: Бахтиёр - 24.11.2023 16:53:25
Проблемы при покраске макросом кусков текста внутри ячейки
 
Добрый день.
Нужен макрос, который пробежится по тексту (значению) активной ячейки и если встретит жирные куски - должен покрасить их на синий цвет.
Мой код:
Код
Sub dddd()
For i = 1 To Len(ActiveCell.Value)
    With ActiveCell.Characters(i, 1)
        If .Font.Bold = True Then
            '.Font.Bold = True
            .Font.Color = vbBlue
        End If
    End With
Next
End Sub
Почему-то не красит первый жирный кусок (в примере: "Что касается централизованных функций").
Потом, я копирую начальное значение (столбец A) и вставляю в столбец С и опять запускаю макрос, стоя на столбце С --- после текста добавляются куча непонятных знаков.
3-4 раза пробовал макрос --- книга уже не даёт его сохранять -- выдаёт ошибку.

Если у меня много таких ячеек с таким длинным текстом --- стоит ли использовать макрос, чтобы покрасить жирные куски текста внутри ячейки?
По-моему, все вышеописанные проблемы у меня появляются из-за того, что в ячейке длинный текст (больше 900 знаков). Так?

Может есть способ как-то аккуратно макросом добиться моей хотелки?
Изменено: Бахтиёр - 17.11.2023 08:45:24
Как в Power Point программно или встроенными средствами быстро разделить файл презентации на несколько файлов презентаций?
 
Добрый день.
Как в Power Point программно или встроенными средствами быстро разделить файл презентации на несколько файлов презентаций?
Например, в прилагаемом файле: слайды с 1 по 3 - в один файл, слайды с 4 по 5 - в другой файл.

В реале файл на 220 слайдов нужно быстро разделить на 7-8 файлов.
 
RegExp. Вычленить отдельно каждое предложение из ячейки., Посреди предложения никоим образом не будет точки, точка будет означать конец каждого предожения. Не будет чисел.
 
Добрый день.
В другой теме подсказали паттерны Ігор Гончаренко, asesja, nilske и другие форумчане, за что им спасибо.
Я изучил их паттерны, прочитал про жадные и ленивые кванторы.

Поставил себе задачу с другими условиями:
Вычленить отдельно каждое предложение из ячейки A1. Они отвечают таким условиям:
1) Не будет цифр и чисел.
2) Каждое предложение будет заканчиваться на точку. То есть не будет вопросительных и восклицательных предложений.
3) Посреди предложения никоим образом не будет точки, точка будет означать конец каждого предожения.
4) Внутри любого предложения могут встречаться запятая, тире, дефис, звёздочка, кавычки (одинарные/парные), скобки (фигурные/обычные/квадратные).
5) Как видите, между предложениями могут быть:
    5а) Один пробел
    5б) Один или несколько подряд идущих переносы строки.

Я решил задачу таким паттерном: "\S.+?\."
Скрытый текст
Интересует вопрос, можно ли решить задачу более коротким паттерном?


Изменено: Бахтиёр - 13.09.2023 09:36:06
Как-то можно стандартными средствами или через VBA достать список всех некорректно написанных слов?, Рецензирование - Орфография показывает эти слова один-за-другим, а мне нужно сразу весь список
 
Добрый день.
Если нажать Рецензирование - Орфография, выйдет окно и один за другим будет показывать некорректно (с точки зрения правописания) написанные слова и будет предлагать разные команды: "Пропустить", "Заменить" и т.д.

Вопрос:
Как-то можно стандартными средствами или через VBA достать список всех некорректно написанных слов?
RegExp. Паттерн, чтобы вытащить каждое предложение отдельно.
 
Добрый день.
Нужен паттерн для RegExp, чтобы умел разделить:
Код
Ира шла домой, а не читала пункт 3.5 Кодекса этики. Вася встретился с ним 11.11.2001 года и дал ему ручку.
Его звали Иван.

При этом, между "...дал ему ручку." и "Его звали..." нажат Alt+Enter

на 3 предложения:
1) Ира шла домой, а не читала пункт 3.5 Кодекса этики.
2) Вася встретился с ним 11.11.2001 года и дал ему ручку.
3) Его звали Иван.
VBS. Как получить значение момента в формате "ГГГГ-ММ-ДД чч-мм-сс"
 
Добрый день.
Вопрос про VBS скрипт.

Нужно каждые 4 часа создать резервную копию файла, добавив в наименование файла показатели момента копирования в формате:
НазваниеФайла_ГГГГ-ММ-ДД чч-мм-сс

Насколько я понял, в VBS нет готовой функции, которая бы привела текущий момент к такому формату.
То есть, такое:
Код
x=Format(Now, "YYYY-MM-DD hh-nn-ss")
x=FormatDateTime(Now, "YYYY-MM-DD hh-nn-ss")
не работает.

Также, я не нашёл готовую функцию, чтобы привести числа меньше 10-ти к виду "09" или "07".
Такое:
Код
x=FormatNumber(9, "00")
тоже не работает.

Сейчас получился такой код:
Скрытый текст
Можно ли писать как-то изящнее, и может быть всё-таки есть готовые функции?
Изменено: Бахтиёр - 07.09.2023 09:02:19
После окончания работы vbs скрипта выходит сообщение (Msgbox), но фокус находится не на сообщении
 
Добрый день.
Имеется vbs скрипт (файл Скрипт.vbs), который запускает файл "Чистка.reg" (который в свою очередь делает изменения в реестре), ожидает окончания его работы и выдаёт сообщение "Готово" через Msgbox.
В процессе у юзера спрашивает насчёт уверенности занесения изменений в реестр, выдаёт сообщение, что изменения успешно занесены - с этим всё нормально.

Проблема в том, что когда выходит сообщение "Готово" --> фокус находится не на окне сообщения.
Как это можно сделать?

Код:
Скрытый текст
P.S. Прилагаю и скрипт и reg файл в текстовом формате, а то форум не пропускает.
P.P.S. На самом деле код скрипта побольше, я сократил, чтобы не отвлекало.
Изменено: Бахтиёр - 30.08.2023 14:23:29
Формула нахождения числа, большего по модулю, поиск формулы покороче
 
Нужно вернуть:
7  Если: в A1: -4    в B1: 7
-5  Если: в A1: -4    в B1: -5
-8  Если: в A1: -8    в B1: 6
9  Если: в A1: -8    в B1: 9

Если в A1 и B1 равные по модулю числа, можно вернуть любую из них.

=ЕСЛИ(ABS(A1)>ABS(B1);A1;B1)
справляется, но, интерсно, можно ли написать формулу покороче?
Использование вместо МУМНОЖ новых функций Excel 365
 
Добрый день.
В прилагаемом файле нужную информацию я получил,
введя в ячейку B18 формулу:
=МУМНОЖ(B3:D4;B10:C12)

Интересует вопрос, воспользовавшись новыми
функциями (BYROW, BYCOL, ...) Excel 365, можно ли введя одну формулу в ячейку
B18 --> получить такой же результат в ячейках B18:C19?

При этом не использовать самого МУМНОЖ
Outlook: При нажатии ПКМ на каком-нибудь файле и выбора из меню "Отправить", потом "Outlook" --> проблемы с вставкой подписи
 
Добрый день.
Через Сообщение - Подпись я установил себе подпись. В нём части текста разного цвета и разной жирности и плюс имеется рисунок (логотип).

Если я создаю новое письмо путём нажатия Ctrl+N - подпись нормально вставляется.

А если я нажимаю ПКМ на каком нибудь файле внутри какой-то папки и выбираю из контекстного меню "Отправить" и потом "Outlook" - появляется окно нового письма с готовым вложенным файлом. Проблема в том что:
1) Подпись не появляется автоматом.
2) Если вставить подпись нажатием команд на ленте Сообщение - Подпись - ... --> не показывается рисунок (логотип) и весь текст подписи - без жирности и чёрного цвета и на другом шрифте.

Как лечить?
Особо критичен 2-й вопрос.
Посоветуйте по своему опыту онлайн-переводчики eng-rus, который бы сделал перевод excel-файла, с сохранением его структуры.
 
Добрый день.
Посоветуйте по своему опыту онлайн-переводчик eng-rus, который бы сделал перевод excel-файла, с сохранением его структуры.

Пример: https://www.onlinedoctranslator.com/ru/translationform

P.S. Насколько я понял, один раз написать макрос (на отправку текста на translate.google.com и получение перевода) и сохранить его - не очень хороший вариант, так как Google периодически меняет у себя разные настройки - и макрос перестаёт работать.
PQ Как сослаться на столбец через его название, используя переменную
 
Добрый день.
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="табл"]}[Content],
    Повыш_заголов = Table.PromoteHeaders(Источник, [PromoteAllScalars=true]),
    Измен_тип = Table.TransformColumnTypes(Повыш_заголов,{{"Дата", type date}, {"2022-й год",Int64.Type}, {"2023-й год", Int64.Type}}),
    x=Date.Year(DateTime.LocalNow()),
    Рез = Измен_тип{3}[#"2023-й год"]
in
    Рез
Как в последнем шаге вместо 2023 укзать x?
Что-то типа:
Код
Рез = Измен_тип{3}[Text.From(x) & "-й год"]
не работает
Как программно открыть окно поиска с отображением дополнительных параметров?
 
Добрый день.
Код
Application.CommandBars.ExecuteMso "FindDialogExcel"
открывает окно поиска Excel.

А как программно открыть это окно с отображением доп.параметров? ("как бы" с нажатой кнопкой "Параметры"   см. скрин)
?
Изменено: Бахтиёр - 30.05.2023 19:11:52
Рекурсивная сортировка одномерного массива. Как Sub переделать в Function
 
Добрый день.
Получил от Jack Famous макросы сортировки 1- и 2-мерных массивов (кажется на базе макроса от Anchoret).
Хочу сохранить их с свою надстройку, и когда буду писать коды пользоваться ими.

Сейчас я могу посередине своего кода отсортировать 2-мерный массив так:
Код
mas2=SortArr2D(mas1)

Но сортировка 1-мерного массива написана через Sub и я не знаю как переделать Sub на Function, чтобы точно так же отсортировать 1-мерный массив:
Код
arr2=SortArr1D(arr1)

Там некоторые из 2-х Function'ов  и 2-Sub'ов связаны между собой.
Скрытый текст
Помогите, пожалуйста.
Как лучше собрать большую таблицу из 40 excel файлов, отсортировать по одному столбцу, результат (3 млн. строк) сохранить в csv
 
Добрый день.
Имеется 40 excel файлов (результаты выгрузки из некоей программы), структура столбцов одинакова, отличаются только количеством строк.
Количество столбцов - примерно 6-8.
В совокупности - это всё будет примерно 3 млн строк.

Нам нужно:
1) Это всё собрать
2) Отсортировать по одному столбцу
3) Результат сохранить в CSV

Подскажите, как это сделать?

PQ сделает 1-2-шаги, но 3-шаг не получится, я прав?

Тогда в VBA по очереди, всё скапливаем в один массив, получившийся массив (3 млн строк) сортируем через QuickSort (или другой готовый алгоритм сортировки), пишем получившийся массив в текстовый файл, и в конце формат файла меняем с txt на csv
Так?
Изменено: Бахтиёр - 16.05.2023 09:28:01
Как обратиться чекбоксу через ячейку?, VBA
 
Добрый день.
Имеется чекбокс (элемент Active-x), который привязан к ячейку D4.
Как обратиться (узнать значение/поменять значение)  к этому чекбоксу через ячейку?
Код
Range("D4"). ...
Cells(4,4). ...
Страницы: 1 2 3 4 5 6 7 8 9 След.
Наверх