Страница: 1 |
Страница: 1 |
Вопрос: Вопрос по запуску макроса из другого файла
Добавлено: 18.06.08 07:45
Автор вопроса: Jasmin
Здравствуйте!
Есть такой кусок кода:
.NewSearch
.LookIn = WorkDirFiles
.Filename = Trim(NumberSKV & "*.xls")
If .Execute() > 0 Then
Workbooks.Open Filename:=WorkDirFiles & "Calculation(SorokinFond).xls", UpdateLinks:=False
Workbooks.Open Filename:=.FoundFiles(1)
actWorkTemp = ActiveWorkbook.Name
Worksheets("Base").Activate
j = 4
Do While Not IsEmpty(Range("B" & j).Value)
If Range("B" & j).Value = DateSKV Then
Range("B" & j).Value = 1
Range("C" & j).Value = 0
Application.Calculate
' ***** вызов макроса
a = Application.Run("Calculation(SorokinFond).xls!CalcRateFromFileH", actWorkTemp)
' *****
End If
j = j + 1
Loop
Workbooks("Calculation(SorokinFond).xls").Close SaveChanges:=False
При попытке выполнить пишет, что не может найти данный макрос.
Подскажите, что делать ?
Спасибо
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #1
Добавлено: 18.06.08 07:46
Забыла подкорректировать. Там есть корректное закрытие If и With.
Номер ответа: 2
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #2
Добавлено: 18.06.08 17:51
Попробуй запустить безпараметров. Типа
Номер ответа: 3
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #3
Добавлено: 18.06.08 18:00
Попробуй ещё запустить с полным путём к файлу типа:
и поставить одиночные кавычки:
А лучше почитай примеры из Экселевской справки про метод "Run". Там по англ., но кое что понять можно.
Номер ответа: 4
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #4
Добавлено: 19.06.08 09:04
Примеры читала. Там как у меня написано. Оттуда и брала.
С полным путем пробовала. Не помогает.
Пробовала открывать/закрывать в теле цикла каждый раз. Не помогает. Не видит и все тут.
Возникли сомнения, может я слишком мудро пытаюсь запустить ?
Мне нужно вот так:
1. Имеются книги 2 и 4 с Макросами.
2. Открываю Книгу 1.
3. Нажимаю кнопку меню. Запускается Книга 2 с макросами.
4. По списку номеров книг на листе из Книги 1 нужно выполнить код из Книги 2. В процессе выполнения этого кода нужно открыть Книгу 3 и обработать ее Макросом из Книги 4. Естественно открыв Книгу 4.
5. Закрыть Книгу 3 и 4. Вернуться к продолжению кода в Книге 2 для следующего значения в списке в Книге 1.
При попытке выполнить макрос из Книги 4 и возникает ошибка.
Если Макрос из книги 4 перекопировать в Книгу 1 (где список), то все прекрасно выполняется, запускается. А так не хочет.
Может есть ограничения на глубину вызова макросов из других файлов ?