Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ошибкa в строке Dim Wb As ActiveDocument - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Ошибкa в строке Dim Wb As ActiveDocument
Otter Дата: Пятница, 24.08.2018, 09:57 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Добрый день,
Подправьте пожалуйста код для Word 2010.
Есть ошибка в строке Dim Wb As ActiveDocument. Как исправить чтобы заработал.

[vba]
Код
Sub Сохранить_с_датой()
Dim Wb As ActiveDocument
Dim WbName As String
Dim iPath As String
Dim iFileName As String
   Set Wb = ActiveDocument
   WbName = Wb.Name
   iPath = ActiveDocument.Path & "\"
   iFileName = Left(WbName, Len(WbName) - 4) + "_" + Format(Date, "yyyy/mm/dd") + ".docx"
   'для проверки существования такого же файла
   If Dir(iPath + iFileName) <> "" Then
       MsgBox "Копия файла c датой " & Format(Date, "yyyy/mm/dd") & " в директории " & Chr(13) & iPath$ & " уже существует!", vbExclamation
       Exit Sub
   End If
  
   Wb.SaveCopyAs (iPath + iFileName)
End Sub
[/vba]


Сообщение отредактировал Otter - Пятница, 24.08.2018, 12:48
 
Ответить
СообщениеДобрый день,
Подправьте пожалуйста код для Word 2010.
Есть ошибка в строке Dim Wb As ActiveDocument. Как исправить чтобы заработал.

[vba]
Код
Sub Сохранить_с_датой()
Dim Wb As ActiveDocument
Dim WbName As String
Dim iPath As String
Dim iFileName As String
   Set Wb = ActiveDocument
   WbName = Wb.Name
   iPath = ActiveDocument.Path & "\"
   iFileName = Left(WbName, Len(WbName) - 4) + "_" + Format(Date, "yyyy/mm/dd") + ".docx"
   'для проверки существования такого же файла
   If Dir(iPath + iFileName) <> "" Then
       MsgBox "Копия файла c датой " & Format(Date, "yyyy/mm/dd") & " в директории " & Chr(13) & iPath$ & " уже существует!", vbExclamation
       Exit Sub
   End If
  
   Wb.SaveCopyAs (iPath + iFileName)
End Sub
[/vba]

Автор - Otter
Дата добавления - 24.08.2018 в 09:57
_Boroda_ Дата: Пятница, 24.08.2018, 10:23 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
- Прочитайте Правила форума
- Исправьте название темы согласно п.2 Правил форума
- п.4 Правил форума: один вопрос - одна тема


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение- Прочитайте Правила форума
- Исправьте название темы согласно п.2 Правил форума
- п.4 Правил форума: один вопрос - одна тема

Автор - _Boroda_
Дата добавления - 24.08.2018 в 10:23
Otter Дата: Пятница, 24.08.2018, 13:00 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Надеюсь учел все замечания модератора и исправил правильно.


Сообщение отредактировал Otter - Пятница, 24.08.2018, 13:01
 
Ответить
СообщениеНадеюсь учел все замечания модератора и исправил правильно.

Автор - Otter
Дата добавления - 24.08.2018 в 13:00
_Boroda_ Дата: Пятница, 24.08.2018, 13:05 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В Dim после as мы определяемм ТИП того, что после Dim. Нет такого типа - "Активный документ". Есть просто "Документ"
[vba]
Код
Dim Wb As Document
[/vba]

А исправили неправильно. Вопрос про Dim, а название темы "Сохранить ..."
Поправил Вам


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ Dim после as мы определяемм ТИП того, что после Dim. Нет такого типа - "Активный документ". Есть просто "Документ"
[vba]
Код
Dim Wb As Document
[/vba]

А исправили неправильно. Вопрос про Dim, а название темы "Сохранить ..."
Поправил Вам

Автор - _Boroda_
Дата добавления - 24.08.2018 в 13:05
Otter Дата: Пятница, 24.08.2018, 20:17 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
_Boroda_, Спасибо за правку и теперь другая ошибка в строке
[vba]
Код
Wb.SaveCopyAs (iPath + iFileName)
[/vba] Извиняюсь, что в этой теме другой вопрос, но уж хочется добить этот макрос. Как чувствовал, что могут быть и другие ошибки <_< Надеюсь после исправления этой ошибки заработает как надо. Заранее благодарен.
 
Ответить
Сообщение_Boroda_, Спасибо за правку и теперь другая ошибка в строке
[vba]
Код
Wb.SaveCopyAs (iPath + iFileName)
[/vba] Извиняюсь, что в этой теме другой вопрос, но уж хочется добить этот макрос. Как чувствовал, что могут быть и другие ошибки <_< Надеюсь после исправления этой ошибки заработает как надо. Заранее благодарен.

Автор - Otter
Дата добавления - 24.08.2018 в 20:17
krosav4ig Дата: Суббота, 25.08.2018, 00:53 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеOtter, Имя файла. Запрещенные символы - Википедия

Автор - krosav4ig
Дата добавления - 25.08.2018 в 00:53
Otter Дата: Суббота, 25.08.2018, 03:11 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
krosav4ig, Спасибо за наводку, но где ошибка то.
Пробовал так [vba]
Код
iFileName = WbName + "_" + Format(Date, "yy-mm-dd") + ".docx"
[/vba] Это не помогло. Подозреваю, что путь формируется неверно, но как исправить?
Пробовал так:[vba]
Код
iPath = Application.ActiveDocument.Path & "\"
[/vba] тоже не работает.
Добавил кусок кода:[vba]
Код
'Проверка, что активный файл сохранён на жёстком диске.
' Иначе не известно, по какому пути сохранять.
    If ActiveDocument.Path = "" Then
        MsgBox "Активный файл не сохранён на жёстком диске, поэтому не известно, " & _
            "по какому пути сохранять копию.", vbExclamation
            End If
[/vba]Теперь ошибки по пути не должно быть если файл не сохранен.
И опять не работает <_< Я уже и в корень на диск С сохранял и имя файла одной цифрой делал, ничего не помогает. Ну где же ошибка?


Сообщение отредактировал Otter - Суббота, 25.08.2018, 05:51
 
Ответить
Сообщениеkrosav4ig, Спасибо за наводку, но где ошибка то.
Пробовал так [vba]
Код
iFileName = WbName + "_" + Format(Date, "yy-mm-dd") + ".docx"
[/vba] Это не помогло. Подозреваю, что путь формируется неверно, но как исправить?
Пробовал так:[vba]
Код
iPath = Application.ActiveDocument.Path & "\"
[/vba] тоже не работает.
Добавил кусок кода:[vba]
Код
'Проверка, что активный файл сохранён на жёстком диске.
' Иначе не известно, по какому пути сохранять.
    If ActiveDocument.Path = "" Then
        MsgBox "Активный файл не сохранён на жёстком диске, поэтому не известно, " & _
            "по какому пути сохранять копию.", vbExclamation
            End If
[/vba]Теперь ошибки по пути не должно быть если файл не сохранен.
И опять не работает <_< Я уже и в корень на диск С сохранял и имя файла одной цифрой делал, ничего не помогает. Ну где же ошибка?

Автор - Otter
Дата добавления - 25.08.2018 в 03:11
InExSu Дата: Суббота, 25.08.2018, 08:05 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!

[vba]
Код
Option Explicit

Sub сДатой()

    ActiveDocument.SaveAs2 _
            Путь(Файл_Имя)
End Sub

Private Function Путь(ByVal Имя As String) As String
    Путь = "c:\" & Имя
End Function

Private Function Файл_Имя() As String

    Файл_Имя = "Ворд " & Format(Date, "yyyy-mm-dd")
End Function
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!

[vba]
Код
Option Explicit

Sub сДатой()

    ActiveDocument.SaveAs2 _
            Путь(Файл_Имя)
End Sub

Private Function Путь(ByVal Имя As String) As String
    Путь = "c:\" & Имя
End Function

Private Function Файл_Имя() As String

    Файл_Имя = "Ворд " & Format(Date, "yyyy-mm-dd")
End Function
[/vba]

Автор - InExSu
Дата добавления - 25.08.2018 в 08:05
Pelena Дата: Суббота, 25.08.2018, 08:10 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Otter, а почему SaveCopyAs? Попробуйте SaveAs

И исходный файл в каком формате? Если .xlsx, то лучше не 4 символа от длины отнимать, а 5 в этой строке
[vba]
Код
Left(WbName, Len(WbName) - 4)
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеOtter, а почему SaveCopyAs? Попробуйте SaveAs

И исходный файл в каком формате? Если .xlsx, то лучше не 4 символа от длины отнимать, а 5 в этой строке
[vba]
Код
Left(WbName, Len(WbName) - 4)
[/vba]

Автор - Pelena
Дата добавления - 25.08.2018 в 08:10
Otter Дата: Суббота, 25.08.2018, 08:21 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Pelena, Спасибо Вы правы так все работает.
InExSu, у Вас тоже все работает, только имя файла постоянно, а идея сохранять файл с исходным именем и добавление даты, чтобы видеть сохраненки свежие и старые.

Работает то работает, да не совсем корректно.
Подправил так:[vba]
Код
iFileName = Left(WbName, Len(WbName) - 5) + "_" + Format(Date, "yy-mm-dd") + " " + Format(Time, "HH-mm") + ".docx"
[/vba]Теперь в имени файла часы и минуты и по идее можно сохранять каждую минуту новый файл. Однако каждый новый файл при последующем сохранении в имени добавляет еще раз дату и тем самым увеличивает имя файла многократно добавляет дату.

Вопрос: как подправить код, чтобы каждая сохраненка текущей даты меняла в имени файла только часы и минуты. Естественно на следующий день опять дата меняется, а копии файла в течении дня имеют разные часы и минуты.


Сообщение отредактировал Otter - Суббота, 25.08.2018, 16:05
 
Ответить
СообщениеPelena, Спасибо Вы правы так все работает.
InExSu, у Вас тоже все работает, только имя файла постоянно, а идея сохранять файл с исходным именем и добавление даты, чтобы видеть сохраненки свежие и старые.

Работает то работает, да не совсем корректно.
Подправил так:[vba]
Код
iFileName = Left(WbName, Len(WbName) - 5) + "_" + Format(Date, "yy-mm-dd") + " " + Format(Time, "HH-mm") + ".docx"
[/vba]Теперь в имени файла часы и минуты и по идее можно сохранять каждую минуту новый файл. Однако каждый новый файл при последующем сохранении в имени добавляет еще раз дату и тем самым увеличивает имя файла многократно добавляет дату.

Вопрос: как подправить код, чтобы каждая сохраненка текущей даты меняла в имени файла только часы и минуты. Естественно на следующий день опять дата меняется, а копии файла в течении дня имеют разные часы и минуты.

Автор - Otter
Дата добавления - 25.08.2018 в 08:21
Otter Дата: Вторник, 28.08.2018, 20:47 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Так как тема по текущему вопросу закрыта дальнейшая доработка макроса здесь. Кому интересно приходите.
 
Ответить
СообщениеТак как тема по текущему вопросу закрыта дальнейшая доработка макроса здесь. Кому интересно приходите.

Автор - Otter
Дата добавления - 28.08.2018 в 20:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!