![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.12.2007
Сообщений: 10
|
![]()
Макрос должен запускаться из внешнего файла (Макрос.xls).
Спрашивать, откуда ему взять файл для обработки. Далее ячейку а1 он должен делить на 1000. Сохранять файл. Основная сложность, с которой я столкнулся - не получается задать ячейке во ВНЕШНЕЙ (открытой) книге значение этой же ячейки, деленное на 1000. Почему-то макрос всё время обращается к той книге, в которой сам макрос и содержится (Макрос.xls). |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
А текст макроса посмотреть можно?
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.12.2007
Сообщений: 10
|
![]()
У нас теплоэнергетическая компания, потому не удивляйтесь наиминованиям Тепло Своё и Котёл 1.
Sub Transport_from_1() 'Спросим, из какой папки взять файлы With Application.FileDialog(msoFileDialo gFolderPicker) .Title = "Укажите рабочую папку": .Show If .SelectedItems.Count = 0 Then Exit Sub Else path = .SelectedItems(1) & "\" End If End With file = Dir(path & "*.xlsx") Do While file <> "" Application.Workbooks.Open (path & "\" & file) 'С каким листом в открытой книге работаем? listname = "Топливо форма" 'С какой по какую строчку обрабатывать (jFirst, jEnd). jFirst = 6 jEnd = 17 'И через сколько строк перескакивать StepInt = 5 'Вызываем функцию деления Call Svoyo 'Сохранение книги в текущую папку под новым именем ActiveWorkbook.SaveAs ActiveWorkbook.path & "\" & file & "_1.1.xlsm" 'Переходим к новому файлу в директории file = Dir Loop 'Когда обработаем все файлы - позакрываем книжки ThisWorkbook.Close (savechanges = False) ActiveWorkbook.Close (savechanges = False) End Sub ---------------------------------------------------------- Sub Svoyo() 'Какие ячейки будем делить? 'Котёл 1 'Со строчки 80 по 110, пожалуйста. FirstCell = 80: EndCell = 110 'Вызываем программу деления Summer 'Котёл 2 FirstCell = 119: EndCell = 149 Summer 'Котёл 3 FirstCell = 158: EndCell = 188 Summer 'Котёл 4 FirstCell = 197: EndCell = 227 Summer 'Котёл 5 FirstCell = 236: EndCell = 266 Summer 'Котёл 6 FirstCell = 275: EndCell = 305 Summer 'Котёл 7 FirstCell = 314: EndCell = 344 Summer 'Котёл 8 FirstCell = 353: EndCell = 383 Summer 'Котёл 9 FirstCell = 392: EndCell = 422 Summer 'Котёл 10 FirstCell = 431: EndCell = 461 Summer End Sub ------------------------------------------------------------- Sub Summer() Dim j As Integer, temp As Integer For j = jFirst To jEnd For k = FirstCell To EndCell Step StepInt ActiveWorkbook.Sheets(listname).Cel ls = ActiveWorkbook.Sheets(listname).Cel ls / 1000 Next k Next j End Sub |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 05.12.2007
Сообщений: 10
|
![]()
В Sub Summer опечатка:
ActiveWorkbook.Sheets(listname).Cel ls на самом деле выглядит как ActiveWorkbook.Sheets(listname).Cel ls(k, j) |
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
и до знака равно и после него?
макрос хороший и должен записывать в книгу (path & "\" & file)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 05.12.2007
Сообщений: 10
|
![]()
И до знака и после, разумеется.
То есть ЯЧЕЙКА = Ячейка, деленная на 1000 В целом, макрос у меня уже пашет, но там один нюанс - выдает ошибку, мол значение скрыто. Хотя оно вполне даже видимо. |
![]() |
![]() |
![]() |
#7 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
видимо Sub Svoyo можно переписать так:
---------------------------------------------------------- Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Summer какой то непонятный... Цикл в цикле по неопределённым переменным (0 to 0), где все ячейки делятся на 1000...
Хотя вероятно не делятся - т.к. имя листа неизвестно. Файл бы глянуть.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 30.01.2012 в 18:50. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открыть нужный файл, изменить его, закрыть без вопросов | Ципихович Эндрю | Microsoft Office Word | 17 | 03.01.2012 03:30 |
Из Экселя ячейку в ворд и сохранить файл с именем ячейки | Zhenya2030 | Microsoft Office Word | 1 | 19.07.2010 15:36 |
Открыть файл как Hex найти там некий участок кода, заменить его и сохранить | AstraZak | Общие вопросы C/C++ | 10 | 05.03.2010 18:58 |
Диалоги открыть/закрыть файл | Altera | Операционные системы общие вопросы | 3 | 03.12.2008 01:18 |
Как открыть и сохранить mp3 файл в delphi? | Rahim1993 | Мультимедиа в Delphi | 2 | 03.01.2008 12:55 |