Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 118 След.
Импорт данных XML в excel
 
Добрый день! У меня непосредственно открывает, но не быстро (Excel 2016).
Владимир
Найти диапазон n страницы печати
 
Начните с изучения объекта HPageBreaks.
Владимир
Запуск процедуры (макроса) при перемещении курсора мыши за пределы границ пользовательской формы
 
По-видимому, речь идет о курсоре мыши.

Проведите эксперимент. Создайте форму с одним текстовым полем, запустите на выполнение и уведите курсор мыши далеко от формы. Начните вводить текст с клавиатуры. Вы видите курсор (клавиатуры) в тексте. Далее, сделайте движение мышью. Курсор мыши как был далеко от формы, так и остался.
На поведение (модальной) формы никак не влияют движения мыши вне этой формы. Когда мышь пересекает границу формы начинает срабатывать событие формы (или ее элементов управления) MouseMove.
Владимир
Перевод времени в десятичные числа
 
Можно и без вавилонской системы счисления:  :)
Код
=ОСТАТ(B5*24*60*60;24*60)
Владимир
Обновление 01.04.2021
 
Нашел источник проблемы #78 ("лишние письма"). Неведомая сила в день "X" (07.05.2021) подписала меня на "Все сообщения раздела Вопросы по Microsoft Excel".
Удалил подписку, почтовая буря улеглась.
Изменено: sokol92 - 15.05.2021 19:08:39
Владимир
При вставке из буфера (MyData.PutInClipboard) появляется абракадабра.
 
Посмотрите в этой теме последний метод.
Владимир
Макрос присвоить имя ячейке
 
Код
' Добавляет в имена книги имя из ячейки Cell со ссылкой на эту ячейку.
Sub AddCellName(ByVal Cell As Range)
  If Len(Cell.Value) > 0 And VarType(Cell.Value) = vbString Then
    Cell.Parent.Parent.Names.Add Name:=Cell.Value, RefersTo:=Cell
  End If
End Sub

Sub Test()
  AddCellName ActiveCell
End Sub
Владимир
Перенос данных из Excel в Word с возможностью редактирования
 
Добрый день! Наилучшее решение - проектировать документ Excel так, чтобы он "выглядел симпатично" при печати.

Можно, к примеру, делать заполнение в одной части документа, переносить формулами в другую часть, откуда и печатать. При этом может пригодиться тип выравнивания ячейки по горизонтали "распределенный (отступ)".

Альтернативный путь с привлечением MS Word - слияние данных MS Excel и MS Word.
Владимир
Обновление 01.04.2021
 
Добавление к списку Михаила:

4. Приходят уведомления по темам, на которые не подписывался (только сегодня несколько сотен лишних писем).
Владимир
Изменить символы на русский язык или восстановить .log файлы для Excel
 
Посмотрите эту тему.
Владимир
Макрос выбора файла через диалоговое окно - как сделать файл активным
 
Код
  Set WB = Workbooks.Open(Filename:=x)
Владимир
Обновление 01.04.2021
 
Стали приходить на E-mail извещения по темам, на которые не подписывался.
Владимир
Копирование диапазона ячеек с другого документа (VBA EXCEL), ошибка Subscript out of range
 
Уважаемый Василий! Не все читатели форума свободно владеют транслитом. Перед копированием текста в буфер обмена из редактора VBA переключайте клавиатуру на русский язык. Исправьте, пожалуйста, "кракозябры" в своих сообщениях.
Изменено: sokol92 - 09.05.2021 16:28:29
Владимир
Модернизация ленты, Изменение содержимого ленты
 
Спасибо автору и от меня!
Владимир
Сохранение реестра открытых файлов с последующей возможностью их открытия
 
Цитата
TheBestOfTheBest написал:
Есть встроенный функционал: Вид-Сохранить рабочую область.
Был - в последних версиях убрали...
Владимир
Сохранение реестра открытых файлов с последующей возможностью их открытия
 
Это уже было.  :)  
Изменено: sokol92 - 08.05.2021 14:07:00
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Цитата
RAN написал:
Время обработки каждого из потоков до 3 часов. Всего запускается 8 потоков
На мой взгляд, Excel не очень приспособлен для пакетных вычислений и во многих случаях ориентирован на присутствие пользователя. :(  
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Здравствуйте, Андрей!
Посмотрел примеры из #17. У меня снятие пароля с проекта работает нестабильно. Причина, может быть, в том, что когда мы открываем первую книгу и выполняем макрос, то, как когда-то заметил Владимир (ZVI), мы работаем в неполной модели Excel.
Если обязательно нужен вызов из VBS, то можно открывать специально созданную "стартовую" книгу, в этой книге по событию Workbook_open вызывать через Application.Ontime макрос с нужными действиями. Этот макрос после выполнения всей работы может закрыть Excel.

Экземпляры Excel у меня не зависают после XL.Quit.
Изменено: vikttur - 07.05.2021 20:47:06
Владимир
Копирование определенных листов из одной книги в другую новую книгу VBA
 
Если Вы хотите сохранить макросы, то проще вернуться к макросу из #1. Можно ведь удалить все листы, кроме листов из определенного списка. После этого неплохо бы пройтись по именам книги и удалить те, которые имеют недействительные ссылки.
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Цитата
vikttur написал:
Что в коде подразумевается под идентификатором?
Это я так (неудачно) пошутил (добавив Off). Цитата относится к VB.Net.  Конечно, Call можно использовать, это дело вкуса.

В документации по VBA ключевое слово Call описано как необязательное. Разница возникает при указании параметров при вызове макросов - с Call их надо заключать в скобки, без Call не надо. Вероятно, Call унаследован из старых версий.

Я никогда не использую Call.
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Посмотрел ссылку из #2. Код имеет более 300 строк, используется тот же подход, что в #3, вместо SendKeys используются соответствующие низкоуровневые API. Думаю, что эффективность кода такая же.
Да, и наверное, в свете нескольких дискуссий на форуме о побочных эффектах оператора SendKeys (NumLock и т.п.) стоит использовать одноименный метод SendKeys объекта WScript.Shell, у которого выявленных подобных недостатков нет.
Изменено: sokol92 - 06.05.2021 15:32:04
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Цитата
vikttur написал:
Ну, почему не Call DoEvents2?
Off. Как всегда, следую рекомендациям разработчика:  :)
Цитата
Обычно используется Call ключевое слово, если вызванное выражение не начинается с идентификатора. Использование Call ключевого слова для других целей не рекомендуется.
Изменено: sokol92 - 06.05.2021 14:35:06
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Цитата
RAN написал:
DoEvents2 - опечатка,
См. ниже в моем тексте.
Яндекс еще не успел посмотреть. :D  
Владимир
Программно снять пароль с VBAProject без SendKeys (пароль известен)
 
Здравствуйте, Андрей! Попробуйте следующий код - меня он не подводил.
Код
' Снимает защиту проекта.
' Идея: http://www.rondebruin.nl/
Function UnprotectVBProject(ByVal wb As Workbook, ByVal Password As String) As Boolean
    Dim vbProj As Object, vbCtl As Object
    Set vbProj = wb.VBProject
    UnprotectVBProject = False

    If vbProj.Protection <> 1 Then
        UnprotectVBProject = True
        Exit Function
    End If

    Set Application.VBE.ActiveVBProject = vbProj
    DoEvents2
    If Application.VBE.ActiveVBProject.Name <> vbProj.Name Then
        Exit Function
    End If

    Set vbCtl = Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True)
    With vbCtl
        .Reset
        DoEvents2
        .Execute
    End With

    SendKeys Password & "~~", True
    DoEvents2
    
    If vbProj.Protection <> 1 Then
        UnprotectVBProject = True
    End If

End Function

' Многократное выполнение DoEvents
Private Sub DoEvents2(Optional ByVal n As Long = 10)
  Dim i As Long
  
  For i = 1 To n
    DoEvents
  Next i
  
End Sub
Владимир
Слетает выпадающий список после закрытия и открытия документа
 
Добрый день! В дополнение к ответу #5. Как пишет Михаил в #4, если в имена книги поместить формулу для проверки введенного значения и сослаться на нее (что сделано в ответе #4), то работает и со СМЕЩ (только диапазоны A:A и B:B лучше ограничить).
Владимир
Собирать дату из числовых показателей расположенных в разных столбцах.
 
В VBA ошибка, связанная с несуществующей датой 29 февраля 1900, исправлена. Цена - сдвинули начало отсчета дней для совместимости с Excel.
Код
Debug.Print Format(CDate(0), "YYYY-MM-DD")

выдает 1899-12-30.

Начиная с 1900-03-01 (61-й день) номера дней в Excel и в VBA совпадают.
Изменено: sokol92 - 05.05.2021 15:33:45
Владимир
Собирать дату из числовых показателей расположенных в разных столбцах.
 
Цитата
vikttur написал:
Считайте в этом промежутке количество високосных (/4 с учетом остатка),
... И не забудьте, как Билл Гейтс, что 1900 год не был високосным (надо было не в гараже сидеть, а в школе учиться). :D  
Изменено: sokol92 - 05.05.2021 14:25:43
Владимир
О присвоении значения ячейке листа Excel
 
Здравствуйте, Алексей!

По поводу оператора
Код
cell.Value2=arg

То же, что в стартовом сообщении с той лишь разницей, что ситуации в пунктах 2 и 3 обрабатываются так же, как в пункте 1, поскольку при присвоениии свойства value2 значения типов Date и Currency преобразуются в Double. Тексты, похоже, обрабатываются так же.

О присвоении значений диапазонам ячеек не писал, поскольку это не соответствует заявленной теме. Понятно, что присвоение значений ячейкам диапазона сводится к последовательному присвоению значений каждой ячейке этого диапазона. Нужно сформулировать правила для разных типов диапазонов (Range) и разных типов arg (скалярные значения, одномерные массивы, двумерные массивы, ...).
Владимир
О присвоении значения ячейке листа Excel
 
Цитата
_Igor_61 написал:
И судя по чтению интернета  не всегда понятно от чего это зависит
Сообщение #1 - это тоже интернет. :)  
Владимир
О присвоении значения ячейке листа Excel
 
Цитата
bedvit написал:
Владимир, перепутаны 1 и 2й пункты, поправьте.
Здравствуйте, Виталий, мне кажется, не перепутаны. В первом пункте анализируется ситуация, когда arg имеет числовой тип vbDouble, vbSingle, vbLong, ...  в зависимости от формата ячейки Cell, которым может быть числовым, датой, текстовым, ... Аналогично, во втором пункте.
Изменено: sokol92 - 03.05.2021 17:39:16
Владимир
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 118 След.
Наверх