Почему этот файл всегда сохраняется как FALSE.xls? - PullRequest
1 голос
/ 21 января 2009

Я написал сценарий VB, который создает файл .xls на основе файла .xlt. Затем он вызывает макрос из файла .xls, который заполняет его информацией из базы данных. На последнем шаге скрипт сохраняет файл .xls на диске.

Я делал это раньше с VB и Excel 2003. Теперь я обновился до Excel 2007, и, прежде чем он сохранил файл, всплывает окно и сообщает, что:

"Следующие функции не могут быть сохранены в книгах без макросов:

  • VB проект

... некоторые Яда Яда о том, что делают опции Да и Нет.

И кнопки «да» и «нет» в диалоговом окне. " Я хочу, чтобы скрипт автоматически выбирал и выполнял Да в диалоговом окне. Но я не могу понять, как это сделать. Я также опубликовал сценарий, который я написал.

Если у вас есть лучший подход к этому, пожалуйста, поделитесь. Спасибо, Стив

Sub Main()
    Dim xl_app

        Set xl_app = CreateObject("Excel.Application")
        xl_app.Workbooks.Open("E:\Work\Send Mail\Clienti.xls")


        'Run the macro

    xl_app.Run( "ImportData(""Data Source=SFA;Initial Catalog=Campofrio; 
            Integrated Security=SSPI;Connect Timeout=3000"", -1, 47)")

xl_app.ActiveWorkbook.SaveAs FileName="E:\Work\Send   
                Mail\Clients.xls",FileFormat=xlNormal

xl_app.Quit
    Set xl_app = Nothing
End Sub

Теперь код работает, но вместо сохранения файла в указанном месте он сохраняет его в папке «Мои документы» в папке FALSE.xls.

Ответы [ 3 ]

3 голосов
/ 21 января 2009

Объединение ответов на два повторяющихся вопроса, заданных плакатом:

1

Предотвращение False.xls при сохранении файлов в Excel

2

Вы используете именованные параметры в .SaveAs неправильно. При записи именованного параметра вам нужно будет сделать это в формате

FileName:="e:\myfile.xls"

Обратите внимание на двоеточие перед знаком равенства.

Если вы просто напишите Filename = "myfile.xls", тогда это логическое сравнение, которое вернет false. И именно поэтому он сохраняет файл как false.xls.

Действительно смешная ошибка, я думаю. ;)

0 голосов
/ 21 января 2009

Я не уверен, в этом ли проблема, но разве вы не должны просто сохранять в формате .xlsm вместо .xls, что позволяет сохранять книги с поддержкой макросов в Office 2007? Вы можете проверить, на какой версии выполняется макрос, и если это Excel 2007, сохранить в формате .xlsm, в противном случае .xls ...

0 голосов
/ 21 января 2009

Вам действительно нужно сохранить его с включенными макросами? Если нет, используйте: ActiveWorkbook.SaveAs Имя файла: = "E: \ Work \ Send Mail \ Clients.xls", FileFormat: = xlNormal

EDIT: ключ в том, что используемое расширение должно соответствовать указанному FileFormat. Вышеуказанное работает для меня (чтобы исключить макросы), а ниже работает для меня (чтобы включить макросы). Ни один из них не имеет всплывающего окна, и оба оказываются в правильном каталоге (как упоминалось в другом постере, вы должны иметь: =, если вы указали FileName; в противном случае используйте форму ниже.

ActiveWorkbook.SaveAs "c: \ temp \ wordmacros \ mybook.xlsm", xlOpenXMLWorkbookMacroEnabled

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...