Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 18:58   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Как подставлять год, автоматом

В макросе есть выражение
Код:
MyPath = "F:\Заявки\2008"  'Подставьте путь к папке содержащей папку с именами месяцев
и каждый год, "лезу" и меняю год в ручную.
Как, что бы автоматом, менялось??
valerij вне форума Ответить с цитированием
Старый 02.01.2011, 19:08   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Код:
Private Sub Workbook_Open()
MyYear = Format(Date, "yyyy")
MyPath = "F:\Заявки\" & MyYear 'Подставьте путь к папке содержащей папку с именами месяцев
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.01.2011, 19:10   #3
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Код:
MyPath = "F:\Заявки\" & Year(Date)
nilem вне форума Ответить с цитированием
Старый 02.01.2011, 20:51   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а данные за прошлый год уже не важны?
MyPath = "F:\Заявки\" & InputBox("год", "введите", Format(Date, "yyyy"))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.01.2011, 21:52   #5
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а данные за прошлый год уже не важны?
MyPath = "F:\Заявки\" & InputBox("год", "введите", Format(Date, "yyyy"))
Нет, не важны, но запомню!!
Тут еще проблема.
Папки для нового года нет(Year(Date)), создаю так
Код:
MkDir "F:\Заявки\" & Year(Date)
но так можно один раз создать, повторно будет ошибка, как обойти MkDir?
valerij вне форума Ответить с цитированием
Старый 02.01.2011, 22:14   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

On Error Resume Next
Dir ("F:\Заявки\" & Year(Date))
If Err > 0 Then MkDir ("F:\Заявки\" & Year(Date)): Err.Clear
On Error GoTo 0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.01.2011, 22:15   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
как обойти MkDir?
Смотрим ЗДЕСЬ
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.01.2011, 22:30   #8
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
On Error Resume Next
Dir ("F:\Заявки\" & Year(Date))
If Err > 0 Then MkDir ("F:\Заявки\" & Year(Date)): Err.Clear
On Error GoTo 0
Игорь
Да, обходит, но чета не создает, поясню
Ставлю систем. дату 31-12-2010, а в F:\Заявки\" & Year(Date) есть папка 2010, папки 2011 нет, меняю систем. дату, на зад, запускаю твой макрос, папки 2011 нет.

VictorM
Я читал у Климова, сложно, для меня
valerij вне форума Ответить с цитированием
Старый 02.01.2011, 22:43   #9
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Игорь, получилось, так, а почему, случайно как то вышло
Код:
On Error Resume Next
Dir ("F:\Заявки\" & Year(Date))
Dir 
If Err > 0 Then MkDir ("F:\Заявки\" & Year(Date)): Err.Clear
On Error GoTo 0
создал папку 2011
F:\Заявки\2011
даже так
Код:
On Error Resume Next
Dir 
If Err > 0 Then MkDir ("F:\Заявки\" & Year(Date)): Err.Clear
On Error GoTo 0
Что за данные, показывает?
Код:
Sub zxc()
On Error Resume Next
Dir
If Err > 0 Then MkDir "F:\Заявки\" & Year(Date): MsgBox Err(= 5): Err.Clear
On Error GoTo 0
MsgBox Err(= 0, ну тут понятно)
End Sub

Последний раз редактировалось valerij; 02.01.2011 в 23:36.
valerij вне форума Ответить с цитированием
Старый 03.01.2011, 00:04   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот так будет правильно:
On Error Resume Next
ChDir ("F:\Заявки\" & Year(Date))
If Err > 0 Then MkDir ("F:\Заявки\" & Year(Date)): Err.Clear
On Error GoTo 0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убивать автоматом окна сообщений об ошибках? Kostya1981 Общие вопросы Delphi 4 28.06.2010 23:04
Как отправить почту из папки автоматом? transkriptsiya Работа с сетью в Delphi 0 20.01.2010 17:35
как залогиниться автоматом? geget Работа с сетью в Delphi 43 30.08.2008 22:57
Как автоматом заполнить поле? Stanislav PHP 4 09.03.2008 01:57
как автоматом обновить страницу? proglamer PHP 11 25.02.2008 20:34