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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 115 След.
Макрос: заменить число и отправить на печать множество листов
 
Цитата
Тимофеев написал:
не пойму почему не сохраняет
Сохраняет, если есть папка C:\temp\Поручения, причем 5 раз под одним и тем же именем.
Владимир
Отображение формата числа. "В"-миллиарды, "М"-миллионы. "К"- тысячи. Вопрос: Как добавить "К" ?, [>=1000000000]# ##0,0 В;[>=1000000]# ##0,0 M;0
 
А кто мешает добавить "K" (если хочется отображать значение в целых тысячах):
[>=1000000000]# ##0,0   В;[>=1000000]# ##0,0  M;0 К
Владимир
Скрытая отправка активной рабочей книги электронной почтой
 
Есть старинный простейший метод, который отправляет книгу и ничего не спрашивает:
Код
Sub test()
  ThisWorkbook.SendMail "3333333333@gmail.com", "Курс валют"
End Sub
Владимир
При открытии файла в Офис365 удаляется макрос.
 
Цитата
Михаил написал:
Выкладываю  оригинал .
Файл не существует.
Изменено: sokol92 - 13 апр 2021 12:48:47
Владимир
При открытии файла в Офис365 удаляется макрос.
 
Нужен образец файла.
Владимир
Ненужное преобразование значений в формат даты
 
Причина в строке 7. Если Вы уберете в ней знак равенства, то станет 10.
Функции Excel (за редким исключением) игнорируют формат ячеек. Точных правил, в соответствии с которыми действует функция СЧЁТЕСЛИ при обработке текстов, начинающихся на знак "=",  я не знаю (хотя могу догадываться).
Изменено: sokol92 - 10 апр 2021 15:49:53
Владимир
Ненужное преобразование значений в формат даты
 
Цитата
ArtNord написал:
3-21 и 1-3 excel считает как одинаковые данные
Это не так. Базовое значение ячейки (число, текст) определяется в момент занесения и дальше не изменяется (даже при изменении формата, кроме совсем уж экзотичных случаев).

Другое дело, что при реализации функций СУММЕСЛИ, СЧЁТЕСЛИ и некоторых других разработчиком принято крайне неудачное решение: перед сравнением производится попытка преобразования текстов в числа или даты по определенным правилам. Из-за этого эти функции крайне опасны, например, в бухгалтерских расчетах, где встречаются тексты, состоящие из 16 и более цифр: расчетные счета, номера банковских карт и т.д.

Само по себе преобразование текстов в даты или числа в момент ввода выглядит естественно, иначе пришлось бы при вводе, например, "10.4.21" каждый раз спрашивать пользователя, текст или дату он вводит. С другой стороны, это обязывает пользователя быть внимательным.
Изменено: sokol92 - 10 апр 2021 15:25:38
Владимир
Необычный расчет процента от числа
 
Это программисты заложили "откат" руководству. :)  
Владимир
Какая функция окруляет так же как оператор Round в VBA?
 
:D  
Владимир
Преобразовать текстовые числа в числовой формат
 
Или выделите ячейки и примените макрос
Код
Sub ToValue()
 Selection.Value = Selection.Value
End Sub
Владимир
Возврат результата работы WshShell.Run
 
Может быть, проще поступить?
Код
' Запуск внешних программ в синхронном режиме
Function RunPgm(ByVal pgm)
    Dim wshShell
    Set wshShell = CreateObject("WScript.Shell")
    RunPgm = wshShell.Run("%comspec% /c " & pgm, 0, True)
    Set wshShell = Nothing
End Function
Изменено: sokol92 - 4 апр 2021 21:13:35
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Для того, чтобы не зависеть от текущего стиля ссылок и не запутаться в сложных формулах, Казанский разработал подход, который ниже проиллюстрирован на Вашем примере. Макрос будет работать при любом стиле ссылок (Application.Range всегда использует стиль A1).
Код
Sub Test()
 Dim s As String, rg1 As Range, rg2 As Range
 Set rg1 = Range("A1:A12")
 Set rg2 = Range("A1:A12")

 s = "=MAX(COUNTIF(%%1, %%2))" ' исходная формула, адреса диапазонов заменены на %%1, %%2
 s = Replace(s, "%%1", rg1.Address(ReferenceStyle:=Application.ReferenceStyle))
 s = Replace(s, "%%2", rg2.Address(ReferenceStyle:=Application.ReferenceStyle))
 MsgBox Evaluate(s)
End Sub

При необходимости можно использовать и другие параметры свойства Range.Address
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Нужно иметь в виду, что при обращении к методу Evaluate адреса ячеек должны быть указаны с учетом текущего стиля ссылок (A1 или RC). В документации ошибка - упоминается исключительно стиль A1.
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Цитата
Евгений Смирнов написал:
Никакого кода там нет
А я вижу этот код. Обновите страницу.
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Цитата
Mershik написал:
автор же хочет не использовать
Я понял следующим образом пример из #1: вычислить формулу, текст которой указан в ячейке C1, не корректируя имена книги (листа) и не меняя значения ячеек.
В #9 показано, как это сделать. Результаты вычислений совпадают.

Могу ошибаться в интерпретации, хотелось бы услышать мнение автора.
Изменено: sokol92 - 2 апр 2021 16:21:40
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Mershik, у Вас формула из #9 для примера из #1 не работает?
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
А #9 чем не подходит?
Владимир
Горячии клавиши для вызова контекстного меню вкладки (листа)
 
Успехов!
Владимир
Горячии клавиши для вызова контекстного меню вкладки (листа)
 
Следующий макрос показывает контекстное меню листа. Назначьте его на любое удобное сочетание клавиш.
Код
Sub ShowPly()
  Dim cb As CommandBar
  For Each cb In Application.CommandBars
    If cb.Name = "Ply" Then
      cb.ShowPopup
      Exit Sub
    End If
  Next cb
End Sub

Можно и короче:
Код
Sub ShowPly2()
  On Error Resume Next
  Application.CommandBars("Ply").ShowPopup
End Sub
Изменено: sokol92 - 2 апр 2021 12:39:46
Владимир
Горячии клавиши для вызова контекстного меню вкладки (листа)
 
Для английского варианта меню будет сочетание Alt+HO...
А какое действие из указанного меню Вы часто применяете?
Владимир
Ошибка при открытии файла макросом
 
Ждем пример файла с демонстрацией ошибки.
Владимир
Можно ли получить результат вычисления формулы в VBA без использования Имен и ячейки листа
 
Метод Application.Evaluate "понимает" формулы. На данном сайте есть много замечательных сообщений от Казанского на эту тему.

В Вашем примере:
Код
  MsgBox Application.Evaluate("=MAX(COUNTIF('ПолучЗначФорм'!$A$1:$A$12,'ПолучЗначФорм'!$A$1:$A$12))")
Изменено: sokol92 - 2 апр 2021 13:30:08
Владимир
Ошибка при открытии файла макросом
 
В открываемой книге есть макросы для обработки события Workbook_open?
Изменено: sokol92 - 1 апр 2021 20:30:49
Владимир
После закрытия книги завершается работа макроса в другой книге.
 
Добавил в Ваш файл изменения, указанные в #19. Открыл в версии Excel 2019 (64-). Открыл и закрыл с десяток книг - часы в ячейке A1 продолжают "тикать".
Владимир
После закрытия книги завершается работа макроса в другой книге.
 
Посмотрите в Диспетчере задач загрузку, когда отрабатывает Ваш макрос.

Необходимо добавить хотя бы минимальную задержку. Application.Wait для этого не подходит. Добавьте в начало модуля
Код
#If VBA7 Then
    Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
и в цикл задержку хотя бы на 100 миллисекунд

Код
Sleep 100

Жизнь должна наладиться.
Владимир
У клиента защищенная книга открывается без пароля
 
Присоединяюсь к мнению коллеги. К сожалению, в даннный момент нет под рукой версии 2007.
Владимир
У клиента защищенная книга открывается без пароля
 
Если Вы защитили книгу с паролем в Excel 2016, то при открытии этой книги в старых версиях Excel (до 2007) вполне может возникнуть описанная Вами ситуация. Или защита снимается пользователем без всякого пароля.
Владимир
VBA уникальный hash текстового шаблона
 
Добрый день! У Игоря на сайте есть пример "нативного" кода для MD5 (от Robert M. Hubley, 1999).
Изменено: sokol92 - 31 мар 2021 13:31:33
Владимир
Добавление макроса другим макросом
 
Почитайте про обработку событий объекта Application из надстроек. Это даст Вам возможность перехватывать в своей надстройке события любых открытых книг и листов, в частности, событие изменения диапазона ячееек.

См., например, здесь.
Изменено: sokol92 - 28 мар 2021 20:46:14
Владимир
Функции =СЦЕПИТЬ и =ПРАВСИМВ не учитывают ноль в конце числа (второй знак после запятой)
 
Цитата
andrew.efc написал:
правильная
Правильная запись - когда формула работает при любых региональных настройках (разделитель дробной доли может быть запятой или точкой). Завтра Вы отправите файл коллеге, а у того другой разделитель... Присмотритесь, например, к функции ФИКСИРОВАННЫЙ
Владимир
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 115 След.
Наверх