powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при записи файла из VBA
8 сообщений из 8, страница 1 из 1
Ошибка при записи файла из VBA
    #35907280
kanalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, плиз, где могут быть грабли?

Есть такой вот простенький код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    N = FindMaxNumM11InDay(Range("G2").Value) +  1 
    m11ShortName = ""
    AppPath = CStr(ActiveWorkbook.Path)

    If N <  10  Then
        m11name = AppPath & "\OUT\" & "M11-" & Range("G2").Value & ".00" & N & ".xls"
        m11ShortName = "M11-" & Range("G2").Value & ".00" & N & ".xls"
    ElseIf N <  100  Then
        m11name = AppPath & "\OUT\" & "M11-" & Range("G2").Value & ".0" & N & ".xls"
        m11ShortName = "M11-" & Range("G2").Value & ".0" & N & ".xls"
    Else
        m11name = AppPath & "\OUT\" & "M11-" & Range("G2").Value & N & ".xls"
        m11ShortName = "M11-" & Range("G2").Value & N & ".xls"
    End If
    D = Range("G2").Value
    
    Workbooks.Add Template:=Workbooks(AppName).Path & "\M11.xlt"
    Application.Workbooks(Workbooks.Count).SaveAs m11name
    Workbooks(m11ShortName).Activate

На моем компьютере и на компьютере заказчика, который со мной общается все работает. А вот, когда его ставят пользователю.... Выдает ошибку в строке:
Код: plaintext
1.
Application.Workbooks(Workbooks.Count).SaveAs m11name

Мне пока не выбраться к заказчику, чтобы понять на месте в чем трабл:(
имя файла получается примерно такое: M11-12.03.2009.001.xls, т.е.
M11-ДД.ММ.ГГГГ.Порядковый_Номер.xls

Офисы 2003. У меня RUS, у заказчика ENG.
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907494
Создайте сначала путь, в вашем случае
пропишите MkFolder(AppPath & "\OUT"), после чего все должно получиться.
Процедурку MkFolder прилагаю:

Public Sub MkFolder(sFolder As String)
On Error Resume Next
If Len(sFolder) < 4 Then
On Error GoTo 0
Err.Raise 5, "MkFolder", "Invalid argument: folder path should be at least 4 characters long."
End If

ChDrive Left$(sFolder, 3)
If Right$(sFolder, 1) = "\" Then sFolder = Mid$(sFolder, 1, Len(sFolder) - 1)

'replace slashes to backslashes
sFolder = ReplTxt(sFolder, "/", "\")
Dim aSubs() As String
'split string into an array
aSubs = Split(sFolder, "\")

Dim i As Long
Dim sMake As String

'walk through the path, skipping element 0 (drive)
sMake = aSubs(0)
For i = 1 To UBound(aSubs)
sMake = sMake & "\" & aSubs(i)
MkDir sMake
Next

'cleanup
Erase aSubs()
Err.Clear
End Sub
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907496
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл m11name на диске у заказчика существует ?
Если да, то не держит ли его какой-либо процесс Excel ?
p.s.
Вот здесь — AppPath = CStr(ActiveWorkbook.Path) Cstr - лишнее.


...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907516
Вообще-то там я так понимаю ошибка с форматом в ячейке Range("G2").Value.
Формат даты там скорее всего такой xx/xx соответственно, когда программа его берет то она пытается в папке OUT создать еще папки, так как символ / означает подпапку.
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907520
kanalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeФайл m11name на диске у заказчика существует ?
Если да, то не держит ли его какой-либо процесс Excel ?
p.s.
Вот здесь — AppPath = CStr(ActiveWorkbook.Path) Cstr - лишнее.


Файл m11name создается в ходе работы приложения. Может там какой антивир стоит?
Ну файл без всяких макросов создается.
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907532
Решение такое
вместо Range("G2").Value писать Format(Range("G2").Value,"dd.mm.yyyy")
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35907996
kanalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот можно опросить народ с разными языками?
Что выдает этот файл при запуске?
Код в нем:

Код: plaintext
1.
2.
3.
4.
5.
6.
Public WithEvents App As Application

Sub Workbook_Open()
    MsgBox Date
    MsgBox Format(Date, "dd.mm.yyyy")
End Sub
...
Рейтинг: 0 / 0
Ошибка при записи файла из VBA
    #35908238
kanalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да! Заработало.
Вспомнилось, Спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при записи файла из VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]