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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 15:35   #1
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию Задать число раз выполнения макроса средствами VBA Excel 2003

Как задать число раз выполнения макроса средствами VBA Excel 2003
Вложения
Тип файла: rar Задать число раз выполнения макроса.rar (7.1 Кб, 13 просмотров)
vfv вне форума Ответить с цитированием
Старый 15.01.2011, 15:51   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в произвольный внешний файл
или в параметр (который сами и создадите) в реестре
или в самом макросе первой строкой напишите const cnt = 1

и дописывайте 1 при каждом выполнении макроса. достигли предела - все, прекращаете выполнение, или тем же способом, которым константу cnt правили - удяляете сам макрос.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.01.2011, 16:03   #3
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Дописал в строку макроса const cnt = 1,однако это не влияет на работу макроса.
vfv вне форума Ответить с цитированием
Старый 15.01.2011, 16:15   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

читейте дальше:
"и дописывайте 1 при каждом выполнении макроса" - а вот теперь дописываете код в Вашем макросе, который будет в Вашем макросе править значение константы cnt при каждом запуске.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 15.01.2011, 16:31   #5
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Что то я не как не могу сообразить. У Вас нет какого нибудь примера?
vfv вне форума Ответить с цитированием
Старый 15.01.2011, 16:51   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот теперь все сходится.
я просто предложил 3 возможных варианта решения Вашей задачи. ни какого кода я еще не предлагал (советы раздавать проче, чем код писать). Останавливаетесь на чем-то одном, и пишете собственно код, который Ваши задумки реализует.
Я так понимаю, все три варианта Вам одинаково загадочны... но бессознательно понравился 3-й.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 15.01.2011 в 16:58.
IgorGO вне форума Ответить с цитированием
Старый 15.01.2011, 23:57   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

3 варианта.
Радикальные не применял
Вложения
Тип файла: rar Задать число раз выполнения макроса.rar (14.2 Кб, 16 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 16.01.2011, 01:57   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Const cnt = 1

Sub Stop1()
  Dim a As Long, r As Long, c As Long
  r = ActiveCell.Row
  c = ActiveCell.Column
  ActiveSheet.Shapes(1).Select
  Selection.Characters.Text = "Осталось" & 3 - cnt
  Cells(r, c).Select
  With ActiveWorkbook.VBProject.VBComponents(3).CodeModule
    If cnt = 3 Then
      MsgBox "The end"
      .deletelines 3
      .insertlines 3, "Sub Stop2()"
      ActiveWorkbook.Save
      Exit Sub
    End If
    MsgBox 3 - cnt & " times left"
    a = cnt
    .deletelines 1
    .insertlines 1, "const cnt = " & a + 1
    ActiveWorkbook.Save
  End With
End Sub
запускается 3 раза. после 3-го раза. Макрос Stop1() переименовывается в Stop2(), кнопка тереяет с ним связь и перестает работать.
Вложения
Тип файла: rar Книга531.rar (11.8 Кб, 16 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скорость исполнения макроса в Excel-2010 намного ниже, чем в Excel-2003 Павел+ Microsoft Office Excel 5 29.12.2010 03:28
Разделить значения таблицы в документе word из excel средствами vba xamillion Microsoft Office Word 5 07.11.2010 19:25
Запуск какой либо Windows-программы из Excel средствами VBA kovalevskivf Microsoft Office Excel 3 21.05.2009 15:14
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Как средствами VBA экспортировать данные из Excel в Word? Pavel_Ine Microsoft Office Excel 3 20.04.2009 14:14