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

Страницы: 1
Excel не сохраняет надежные расположения
 
БМВ,

У админа на пк не работает тоже. Политики смотрел, ничего не нашел, скорее всего там все в порядке. Настройик экселя у всех одинаковые, по умолчанию, пользователи их как правило не меняют, на целевом пк так же как и у всех. Различаются только минорные версии Windows и Office.
Excel не сохраняет надежные расположения
 
ZVI,
У всех пк в домене один и тот же антивирус (McAfee) с идентичными настройками, на некоторых пк все рабоатет, на некоторых нет, отличается только состав обновлений Windows и Office.
Причем, воспроизвести ошибку на том пк, где все работает, на новой локальной учетной записи, не получилось.
Изменено: EShikh - 25.03.2025 05:56:25
Excel не сохраняет надежные расположения
 
evgeniygeo,
Все галки уже проверены, возможно это какие-то групповые политики, но я не вижу шаблона для офиса в gpedit.
Изменено: EShikh - 24.03.2025 11:29:09
Excel не сохраняет надежные расположения
 
Есть макрос, сохранённый в книге, который запускает bat-файл с помощью WshShell.Run. Если добавить каталог с книгой в надёжные расположения, то всё работает, до перезапуска Excel, причем, после перезапуска, путь к каталогу с книгой остаётся в надёжных расположениях и при повторном запуске макроса, он работает согласно своей логике, но получает от WshShell не нулевой код возврата. Чтобы надежное расположение снова учитывалось, нужно в списке расположений нажать Изменить и через Обзор снова выбрать тот же каталог, если просто вставить путь, то работать опять не будет.
Если запускать bat-файл отдельно, то он работает правильно.

Почему надежные расположения сохраняются, но после перезапуска не работают?
Почему на одних пк макрос работает без проблем, а на других только если добавить каталог с макросом в надёжные расположения?
Изменено: EShikh - 25.03.2025 07:53:33
Не открывается другая книга, когда выполняется bat из vba.
 
Цитата
написал:
а почему нет? Вы же запускаете из Excel - а VBA устроен так, что если выполняется какой-либо макрос, то надо дождаться его окончания. Есть определенные финты, но не для Вашего случая, т.к. у Вас весь основной процесс обработки в батнике.
Цитата
написал:
EShikh , да, если они открыты (или пытаются быть открытыми) в одном экземпляре excel. У меня для подобных случаев на рабочем столе лежит ярлык со ссылкой на excel с ключом /x. Например, у вас открыта модальная форма в какой-то книге. Если вы захотите открыть другой файл, он не откроется, пока вы не закроете форму. Но если кинете этот файл на такой ярлык, он спокойно откроется в новом экземпляре.
Большое спасибо, теперь понятно,  для простой выгрузки я мог бы запускать эксель из батника, но есть другие, для которых диапазон дат передается из экселя в файл, потом по ftp на сервер и т.д.
Не открывается другая книга, когда выполняется bat из vba.
 
Цитата
написал:
Вы сами говорите "дождись выполнения" последним аргументом. Попробуйте поставить в False:КодReturnValue = RunBat.Run(PathToBatch, 0, False)Но есть нюанс: если Вы выполняете в таком режиме - то ReturnValue всегда будет 0. Надо пояснять почему?
Это понятно, но разве ожидание должно влиять на другие книги?
Не открывается другая книга, когда выполняется bat из vba.
 
Код
@echo off
@chcp 65001

cd "%~dp0"

rexec.exe -l login -p password servername command
 
if not errorlevel 0 ( 
    echo rexec завершился с ошибкой %errorlevel% . >> log.txt
    exit 1
)

ftp -s:ftp-get-log.txt servername

if not exist f7272-log.txt (
    echo Нет файла f7272-log.txt . >> log.txt
    exit 1
)

@chcp 866>nul
@<"f7272-log.txt">"f7272-logw.txt" (for /f "delims=" %%i in ('find/n /v ""') do @chcp 65001>nul& set x=%%i& cmd/v/c echo[!x:*]^^=!)

@chcp 65001

for /f %%i in (f7272-logw.txt) do (
    if %%i==1NАТ9995 goto :getfile
)    

echo Програрамма, запускаемая rexec, завершилась с ошибкой. >> log.txt
exit 1    

:getfile
ftp -s:ftp-get-f7272.txt servername
if not exist f7272.txt (
    echo Нет файла f7272.txt . >> log.txt
    exit 1
)

exit 0
Код
Не открывается другая книга, когда выполняется bat из vba.
 

Есть книга с макросом, макрос вызывает bat-файл, который с помощью rexec запускает процедуру выгрузки на сервере, затем получает результат по ftp, дальше макрос с помощью процедуры  IMPORT_F7272_2 импортирует текстовый файл в эксель. Всё работает, но пока выполняется bat файл не открываются другие книги. Как это исправить?

Код
Sub GET_H7272()

    ChDir (ThisWorkbook.Path)
    
    Set RunBat = CreateObject("WScript.Shell")
    
    Dim PathToBatch As String
    Dim ReturnValue As Double
    
    PathToBatch = ThisWorkbook.Path + "\src\get-f7272.bat"
    ReturnValue = RunBat.Run(PathToBatch, 0, True)

    Msg = "Готово"
    MsgEr = "Выгрузка H7272 завершилась с ошибкой"
    Style = vbOKOnly Or vbInformation Or vbDefaultButton1 Or vbSystemModal
      
    If ReturnValue = 0 Then
        Call IMPORT_F7272_2
'        Resp = MsgBox(Msg, Style)
    Else
        Resp = MsgBox(MsgEr, Style)
    End If
    
'    ActiveWindow.Close
    
End Sub
Страницы: 1
Наверх