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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2016, 12:20   #1
Kramorm
 
Регистрация: 06.10.2016
Сообщений: 8
По умолчанию VBA файлы

Здравствуйте! Нужно написать макрос, одна из задач которого, это залазывание во все эксель-файлы, находящийся с данным файлом и разъединять объединенные ячейки. Что-то нашел в Интернете, что-то написал сам, и вот что получилось:
Код:
Sub Разъединить()
    Dim fl As String
    Dim rRange As Range, rCell As Range, sAdr As String, i As Integer
    fl = Dir(ActiveWorkbook.Path & "\*.xls*")
    Do Until fl = ""
        If fl <> ActiveWorkbook.Name Then
            Workbooks.Open(ActiveWorkbook.Path & "\" & fl).Worksheets("AllR").Select
            Set rRange = Range("A1:E58")
            For Each rCell In rRange
                If rCell.MergeCells Then
                sAdr = rCell.MergeArea.Address: rCell.UnMerge
                For i = 2 To Range(sAddress).Cells.Count
                With Range(sAddress)
                .Cells(i).Formula = "=" & .Cells(1).Address
                End With
                Next i
                End If
                Next rCell
            fn = Dir
        Else: fn = Dir
        End If
    Loop
End Sub
Вроде все работает, но не в том файле. Вроде как строкой Workbooks.Open(ActiveWorkbook.Path & "\" & fl).Worksheets("AllR").Select
задаю, чтоб активной был файл, который открылся, а весь макрос проходит только по файлу, от куда была запущен макрос. Я правильно понимаю, что строка написанная выше, заставляет последующие команды выполняться в заданной активной книге? Как правильно исправить, чтоб это начало работать?
Kramorm вне форума Ответить с цитированием
Старый 06.10.2016, 12:36   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Где расположили код? Точное местоположение.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 12:44   #3
Kramorm
 
Регистрация: 06.10.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Где расположили код? Точное местоположение.
Хм, в файле с названием Result16_03.xls, код написан для Листа 1, который находится в C:\Users\Comp\Downloads\moc. Правильно понял, что это нужно было?
Kramorm вне форума Ответить с цитированием
Старый 06.10.2016, 12:54   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если код в модуле листа - он работает с этим листом, если в модуле книги - то с этой книгой (вообще коряво тогда работает, с глюками иногда).
Ваш код нужно расположить в стандартном модуле - именно про это я спрашивал, из ответа понял что код в модуле листа, что и есть причина проблемы.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 13:35   #5
Kramorm
 
Регистрация: 06.10.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Если код в модуле листа - он работает с этим листом, если в модуле книги - то с этой книгой (вообще коряво тогда работает, с глюками иногда).
Ваш код нужно расположить в стандартном модуле - именно про это я спрашивал, из ответа понял что код в модуле листа, что и есть причина проблемы.
Спасибо, не догадался бы.
А как в таком случае можно перенести макрос с одного компьютера на другой? Просто переносом файла?
Теперь на строчке For Each rCell In rRange вылетает ошибка:
Run-time error '438': Object doesn't support this property or method.

Последний раз редактировалось Kramorm; 06.10.2016 в 13:38.
Kramorm вне форума Ответить с цитированием
Старый 06.10.2016, 13:56   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от Kramorm Посмотреть сообщение
А как в таком случае можно перенести макрос с одного компьютера на другой? Просто переносом файла?
ну или копипастом кода, или использованием общей надстройки (расшарить в сети).
По ошибке не знаю, нужно видеть файл.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 14:49   #7
Kramorm
 
Регистрация: 06.10.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
ну или копипастом кода, или использованием общей надстройки (расшарить в сети).
По ошибке не знаю, нужно видеть файл.
Да спасибо.
Файл чего? Тот, из которого запускается макрос совершенно пустой. А тот, который открывается через макрос содержит информацию в первых двух столбцах, который может быть объединенным. Это все.
Kramorm вне форума Ответить с цитированием
Старый 06.10.2016, 15:08   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Чтоб сказать на 95% - нужны оба файла.
5% оставлю на всякие макросы приложения или мало ли что ещё может быть... Говорят даже танки влияли
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.10.2016, 15:27   #9
Kramorm
 
Регистрация: 06.10.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Чтоб сказать на 95% - нужны оба файла.
5% оставлю на всякие макросы приложения или мало ли что ещё может быть... Говорят даже танки влияли
Исходников нет, все делаю просто на примерно аналогичных файлах. Нашел ошибку, подправил, но теперь опять проблема в другом и не верно работает. Вот эти файлы
Вложения
Тип файла: rar moc.rar (18.8 Кб, 7 просмотров)
Kramorm вне форума Ответить с цитированием
Старый 06.10.2016, 15:35   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Посмотрите кто-нибудь, мне архивы будут доступны только вечером к сожалению...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы данных. типизированные файлы. последовательный доступ Elena188 Паскаль, Turbo Pascal, PascalABC.NET 15 25.01.2016 22:47
Файлы: Составить программу, которая перепишет фамилии в отдельные файлы в соответствии с названием группы Гульвира Помощь студентам 1 23.05.2013 10:04
VBA и Oracle: stored procedure из VBA и сохранение текста в переменной Lionne Microsoft Office Excel 1 15.04.2013 19:51
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53