• Как создать универсальный шаблон письма в Word'е?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    1. Можно промаркировать жёлтый текст и сделать замену прямо в Word (в примере 1 замена во всём тексте), или использовать закладки (Вставка (меню) -> Ссылки (группа) -> Закладки), или использовать инструмент Слияние и брать данные из файла Excel (без VBA). При слиянии связи могут глючить + конечный документ необходимо Объединить (как текущую запись), чтобы при работе с документом поля не обновлялись (Слияние использовать не советую). К тому же поля не поддерживают неразрывные символы Word'а Chr(160) и Chr(30).
      Примечание к документам слияния

      В таблице Excel есть поле Дата_1 (тип Дата) и поле Дата_2 (тип Дата). Если значение Дата_1 равно 43003 и значение Дата_2 равно 44764, то в формула ниже посчитается с ошибкой (будет значение ИСТИНА):
      { IF { MERGEFIELD Дата_1 \@"DD.MM.YYYY' г.'"  \* MERGEFORMAT } = { MERGEFIELD Дата_2 \@"DD.MM.YYYY' г.'"  \* MERGEFORMAT } "ИСТИНА" "ЛОЖЬ" }

      Option Explicit
      '123456789012345678901234567890123456h8nor@ya567890123456789012345678toster56789
      
      Sub Replacement_tags()
        Dim Content_Find As Find ' Объект Find
        
        Set Content_Find = ActiveDocument.Content.Find
        With Content_Find ' Найти маркер
          .ClearFormatting: .Replacement.ClearFormatting ' Очистить формат
          .MatchWildcards = False ' ВАЖНО! Отключить Подстановочные знаки
          
          .Text = "[Шапка]": .Replacement.Text = "Начальнику управления..."
          .Execute Forward:=True, Replace:=wdReplaceAll ' Заменить все маркеры [Шапка]
          
          ' Хитрость: перемещение курсора в конец заменённого текста
          .Execute FindText:=.Replacement.Text, _
            Forward:=True, Wrap:=wdFindStop, Replace:=wdReplaceNone
          .Parent.Select ' Выделяем текст для управления курсором
          'Selection.Collapse Direction:=wdCollapseEnd ' Курсор в конец найденного
        End With
      End Sub
    2. Можно сразу заменить на дублированный текст:
      .Replacement.Text = "Начальнику управления..." & String(3, Chr(13)) & "Начальнику управления..."
      или вводить количество дублей в переменную Text перед заменой:
      ' Chr(13) - код символа возврата каретки. В других языках более привычная запись "\r"
      
        CapText = "Начальнику управления..."
        CapСount = InputBox("Введите количество 'Шапок'", , 1)
        If Not CInt(Val(CapСount)) = CapСount Then _
          MsgBox "Введите целое число", vbCritical: Exit Sub _
        Else Text = CapText
        
        While CapСount > 1
          Text = Text & String(3, Chr(13)) & CapText
          CapСount = CapСount - 1
        Wend
    3. Таблицу можно также подтягивать через Слияние (точнее там создаётся объект OLE, которой глючит больше чем обычные поля - в основном это удержание файла Excel, откуда берутся данные). Удобнее программно создавать таблицу:
      ' Используем хитрость из п.1, если планируем создать таблицу в месте маркера
        
        Set tblNew = ActiveDocument.Tables.Add(Selection.Range, 3, 2)
        With tblNew
          .Columns(1).PreferredWidth = CentimetersToPoints(4) ' Колонка 1, Ширина 4 см
          .Borders(wdBorderTop).LineStyle = wdLineStyleNone ' Границы таблицы, например
          .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle
          .Borders(wdBorderVertical).LineStyle = wdLineStyleDot
          For i = 1 To 2
            .Cell(1, i).Range.Text = "Строка 1; #" & i
          Next i
          .Cell(1, 1).Range.InsertAfter Chr(13) & "Строка 2" ' Добавить текст
          .Cell(tblNew.Rows.count, tblNew.Columns.count).Range.InsertAfter "Последняя ячейка"
        End With
    4. Чтобы основной текст нельзя было отредактировать, проще всего создать шаблон Word с поддержкой макросов, основную процедуру (автозапуск) разместить в модуле ThisDocument:
      Private Sub Document_Open()
        Replacement_tags ' Процедура из п.1
      End Sub
      Данные для заполнения шаблона можно поместить в отдельный файл.

    +
    Как использовать отладчик:
    1. Открыть MS Word, в тексте написать маркер [Шапка]
    2. Открыть VBA в приложении (Alt+F11)
    3. Выбирать в меню Insert -> Module
    4. Вставить процедуру (из п.1)
    5. Нажать F5 (запустится процедура, в которой установлен курсор)
    Ответ написан
    Комментировать
  • Как можно посмотреть локальный сайт на моем компе через телефон?

    boratsagdiev
    @boratsagdiev
    UPD: в 2023 году я бы всё же использовал ngrok.

    Ставим npm и browser-sync: https://www.browsersync.io/

    Запускаем локальный сервер (у меня Openserver), открываем консоль в локальной папке, где лежит ваш сайт и запускаем в ней browser-sync с опцией --proxy

    browser-sync start --proxy mylocal.dev

    browser-sync выдаст в консоль что-то такое:

    [BS] Proxying: http://local.dev.domain
    [BS] Access URLs:
     ------------------------------------
     Local: http://localhost:3002
     External: http://192.168.1.6:3002
     ------------------------------------
     UI: http://localhost:3003
     UI External: http://192.168.1.6:3003
     ------------------------------------


    Вам нужен тот что External - http://192.168.1.6:3002, вбиваете его на телефоне и смотрите (естественно телефон должен быть подключен к той же сети, куда подключен и ПК).
    Вот только что проверил с сайтом на Wordpress - работает.
    Ответ написан
    Комментировать
  • Как полностью отключить черновики auto-draft и draft в WordPress?

    irtek
    @irtek
    Wordpress-addicted
    Вы отключаете Revisions, т.е. версии поста, которые по умолчанию сохраняются каждые 60 секунд, но auto-draft Черновики создаются всегда.

    Обычный черновик, который можно отключить это статус "draft", т.е. когда вы сохранили пост как Черновик, а "auto-draft" это автоматически создаваемая временная запись каждый раз при создании нового объекта поста/страницы.

    В большинстве систем когда вы создаете файл или загружаете файл в области памяти создается временный файл, затем после того выполнили какие-либо действия он сохраняется на диске как основная версия.

    Также и в архитектуре WordPress когда вы создаете Запись или Страницу создается auto-draft до момента его публикации или того же сохранения фиксации как draft черновик. Чтобы подчистить за собой черновик нужно выполнить какую-то функцию, а если у вас отключился интернет или вы закрыли браузер? Это не проконтролировать. Поэтому запись auto-draft останется в любом случае.

    Чтобы избавиться от auto-draft записей в базе в WordPress есть функция wp_delete_auto_drafts() которая удалит все auto-draft строки для Записей/Страниц старше 7 дней

    Вы можете эту функцию регулярно вызывать, чтобы чистить базу от лишних записей auto-draft черновиков.
    Только НЕ добавляйте эту функцию просто в файл functions.php, т.к. если она будет вызываться каждый раз при открытии сайта это значительно снизит производительность. Укажите какое-либо условие запуска для нее, например, когда заходит админ раз в 3 дня и т.п. либо посмотрите тему с CRON и повесьте регулярную чистку каждые 7 дней.

    Можете также сделать удаление auto-draft черновиков хоть каждые 10 секунд хоть при каждом открытии админки SQL запросом если критично взяв код запроса из функции
    https://developer.wordpress.org/reference/function...
    или если Запись никто не редактировал 1 час или при выходе из админки и т.п. варианты.
    Ответ написан
    Комментировать
  • Какой монитор выбрать, если материнка DVI-D и HDMI?

    @Dmitriy57
    AMD FreeSync по DVI работать не будет
    Ответ написан
    Комментировать
  • Какой монитор выбрать, если материнка DVI-D и HDMI?

    mayton2019
    @mayton2019
    Bigdata Engineer
    DVI-D - это морально устаревший стандарт. И его стоит брать только для железа которое уже не будет модернизироваться. Кроме того у DVI-D есть ограничения по разрешению видео. Посмотрие в технических описаниях стандарта.
    Ответ написан
    Комментировать
  • Какой монитор выбрать, если материнка DVI-D и HDMI?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Например:
    https://www.dns-shop.ru/product/9950f77472afed20/2...
    https://www.dns-shop.ru/product/6fcf64f0a44c3332/2...
    https://www.dns-shop.ru/product/e95f5129c33a2ff1/2...
    https://www.dns-shop.ru/product/e4e742b6929a3333/2...
    https://www.dns-shop.ru/product/e6af9b4ba44c3332/2...

    В целом, выбор зависит от задач и предпочтений - если хочется в игры играть много, то VA 144Гц 24", если игры не критичны - то IPS 75Гц 27". Порты - дело десятое, главное - матрица и её качество. Перед покупкой лучше почитать обзоры, сравнения и тестирование конкретных мониторов.
    Ответ написан
    6 комментариев
  • Google Play Market ушёл из России: чем вы пользуетесь?

    analogues
    @analogues
    Российские аналоги зарубежных сервисов и товаров.
    Рассмотрите RuStore, RuMarket или NashStore.
    Ответ написан
    1 комментарий
  • Использование телефонных номеров в примерах или example.com для телефона?

    @alekssamos
    Программист любитель
    +79123456789

    P.S. Кстати в 2004 году это был реальный настоящий рабочий номер,
    МТС голосовая почта,
    только туда мог каждый позвонить и записать своё сообщение,
    а ещё и прослушать, как свои, так и чужие, записанные таким же способом
    и я там был не один,
    много детских голосов было там записано и я так даже переговаривался с кем-то.
    Ещё там можно было узнать московское время и запросить СМС об обратном звонке,
    все тогда удивлялись:
    кто это тебе звонил с такого номера?
    Ответ написан
    Комментировать
  • Как использовать условие в gulp-file-include?

    YavaDev
    @YavaDev
    Инклудим файл с переменной:
    @@include('./parts/modules/navbar/navbar.html', {
        "page": "page1",
    })

    Условия в navbar.html:
    @@if (page === 'page1') {
        <span>Navbar for page 1</span>
    }
    @@if (page === 'page2') {
        <span>Navbar for page 2</span>
    }

    Переменную page и ее значения можете менять как угодно.
    Ответ написан
  • Какой плагин для gulp позволяет делать автоматический импорт JS?

    Machinez
    @Machinez
    задачу можно решить инструментами вебпака require.context
    пример кода, поставить в index.js
    function importAll(r) {
      r.keys().forEach(r);
    }
    
    importAll(require.context('.', true, /block\.js$/));
    Ответ написан
    1 комментарий
  • Какой плагин для gulp позволяет делать автоматический импорт scss?

    @tihomirovPro
    Frontend developer
    Ответ написан
    Комментировать
  • Если JPG с компрессией 85% пересохранить еще раз с компрессией 85%, качество ухудшится?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если обсуждать конкретно приложение ACDSee то чорт его знает. Вообще JPEG кодек управляется большим набором параметров (progressive, chroma subsampling) и это всё идет вне самого параметра сжатия.

    Я думаю что после десятка пережатий картинка должна достигнуть некого стационарного состояния (аттрактор типа) и после этого уже не изменятся. Но достигать этого состояния явно не стоит.

    А к автору возникает здравый вопрос. Для чего собственно надо что-то пережимать? В мире и так много электроэнергии тратится впустую. Майнинг крипты и прочее. Зачем еще добавлять безсмысленного нагревания атмосферы?
    Ответ написан
    Комментировать
  • В первый раз пытаюсь написать программу на питоне(про погоду) и выпадает такая ошибка, что делать?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Connection to api.openweathermap.org timed out
    Не удалось соединиться с api.openweathermap.org и по таймауту соединение было закрыто. В браузере эта ссылка открываетя?
    Ответ написан
    Комментировать
  • Gulp - CSSO vs CLEAN-CSS?

    weranda
    @weranda
    Просто оставлю это здесь. Результаты тестов:
    5f27ed0d38ab5536894089.png
    Красный цвет — не очень.
    Синий цвет — норм.
    Другой цвет — в среднем диапазоне циферки.
    Ответ написан
    1 комментарий
  • Google Play Market ушёл из России: чем вы пользуетесь?

    karabanov
    @karabanov
    Системный администратор
    Ищу альтернативу Google Play, в связи с блокировкой в России.

    Он не заблокирован.
    Ответ написан
    3 комментария
  • Google Play Market ушёл из России: чем вы пользуетесь?

    Ищу альтернативу Google Play, в связи с блокировкой в России.

    Странно, вроде бы для потребителя никто ничего не блокировал. Как можно было устанавливать приложения - всё ещё можно.

    И если ты разработчик, который уже опубликовал приложение - тебя тоже никто не выгоняет.
    Если хочешь опубликовать новое - тогда проще сделать это самостоятельно, без каких либо магазинов, ибо конечный пользователь всё равно не будет скачивать какой-то ещё один стор ради того чтобы случайно найти твоё приложение.

    Если очень принципиально, то есть App Gallery и F-Droid
    Ответ написан
    3 комментария
  • Как при сборке gulp запретить browser-sync автоматически открывать браузер?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    62656b70e8328135976757.jpeg
    Не дочитал документацию до пункта open? ))
    Ответ написан
    1 комментарий
  • Что лучше для прототипирования Figma/Axure?

    tilion
    @tilion
    Веб-дизайнер
    Прототипирование можно условно разделить на 2 подхода: Low Fidelity и High Fidelity - прототипирование низкой детализации и прототипирование высокой детализации. Если вам надо набросать прототип поэкранно и в лучшем случае с несколькими эффектами наведения, то вам подойдут инструменты для лоу фиделити прототипирования, к которым относится и Фигма. Для хай фиделити, когда надо показывать сложный функционал, подходит Акшура, прототипирование кодом, Фреймер.
    Ответ написан
    1 комментарий
  • Забыл программу для группового переименования файлов с импортом/экспортом csv?

    hint000
    @hint000
    у админа три руки
    Мне нравился pyRenamer под Linux. Хоть и без буквального экспорта в CSV, но давал предварительный просмотр результата до фактического переименования. Посмотрите внизу страницы его аналоги, может быть среди них есть ваша:
    lostapp.ru/soft/pyrenamer
    Ответ написан
    1 комментарий