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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2011, 14:26   #11
dana11
 
Регистрация: 12.08.2011
Сообщений: 7
По умолчанию

Все получилось. Спасибо огромное человеческое!!
dana11 вне форума Ответить с цитированием
Старый 13.08.2011, 14:41   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Дана, поздравляю!

но там действительно была какая-то заморочка, я так до сих пор и не понял в чем проблема.
Господа программисты, вот код процедуры (достаточно посмотреть 4-е первые строки)
Код:
Sub MakeItRight()
  Dim r11 As Long, r12 As Long, r2 As Long, rEnd As Long
  rEnd = Cells(Rows.Count, 2).End(xlUp).Row: r10 = 2: r2 = 2
  Sheets.Add After:=Sheets(Sheets.Count)
  With Sheets("Получается")
    Do
      If .Cells(r10 + 1, 2) = "" Then r11 = .Cells(r10 + 1, 2).End(xlDown).Row Else r11 = r10 + 1
      If .Cells(r11, 3) <> "" Then
        r12 = .Cells(r11, 2).End(xlDown).Row
        .Cells(r10, 2).Copy Destination:=Range(Cells(r2, 1), Cells(r2 + r12 - r11, 1))
        .Range(.Cells(r11, 2), .Cells(r12, 4)).Copy Destination:=Cells(r2, 2)
        r10 = .Cells(r12 + 1, 2).End(xlDown).Row
        r2 = r2 + r12 - r11 + 1
      Else
        r10 = r11
      End If
    Loop Until r10 > rEnd
  End With
End Sub
написал это, разок запустил, получил результат, выложил см. сообщ.4 в этой теме.
Дана написала о
Цитата:
Run-time error '1004':
Method 'Add' of object 'Sheets' failed
так и есть, строка Sheets.Add After:=Sheets(Sheets.Count)
выпадает по 1004 ошибке???
заходим в отладку Sheets.Count равен 8 (хотя в книге всего 7 листов!!!),
соответсвенно Sheets(Sheets.Count) ссылается на Module1, поэтому и не вставляется новый лист, но как это получилось?
надеюсь на помощь коллективного разума, хотя разбираться надо будет каждому самостоятельно.
заранее спасибо!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.08.2011, 15:37   #13
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Игорь, глюк в самом файле Книга690.xls. У меня тоже грузится без проекта.
Хотя исходник грузится нормально и макрос в нем работает, только на r10 ругается.
Изображения
Тип файла: jpg 2011-08-13_152739.jpg (20.9 Кб, 135 просмотров)
RAN. вне форума Ответить с цитированием
Старый 13.08.2011, 23:46   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Да, действительно, глюк в файле.
Excel считает модуль с кодом листом Excel...

PS: Я запустил такой макрос:
Цитата:
Sub test()
For Each sh In ThisWorkbook.Sheets
Debug.Print sh.Name
Next sh
End Sub
Вот что вывел макрос:
Цитата:
list1
list3
list4
list5
list7
Получается
Надо
Module1
Достаточно удалить модуль Module1, потом добавить его, - и проблема исчезает (книга снова состоит из 7 листов)

Странно, что такой вариант не прокатывает (в проблемном файле):
Код:
Worksheets.Add after:=Worksheets(Worksheets.Count)
Ведь Worksheets.Count возвращает верное число листов - 7, а лист всё равно не добавляется, выскакивает та же 1004-я ошибка.
EducatedFool вне форума Ответить с цитированием
Старый 20.01.2012, 16:15   #15
Иван Садулаев
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 2
По умолчанию Доброго времени суток! вопрос по этой теме тоже, будьте добры, если кто сможет...

Есть книга, в которой множество Листов(приложений)...Рассылаю файл 20-ти сотрудникам,они заполняют данные и отправляют мне...У меня должна получиться сводная таблица( на каждом листе отдельная)....
В первом примере( прикр.файл.), копируются определенные строки, все как надо...Во втором, Можно выбрать файлы, с которых нужно копировать данные, как можно сделать кое-что общее...т.е. перед тем как скопировать, чтобы можно было выбрать файлы с которых копировать?? очень нужно...Заранее благодарен.
Вложения
Тип файла: rar пример.rar (81.3 Кб, 25 просмотров)
Тип файла: rar пример 2.rar (6.4 Кб, 14 просмотров)
Иван Садулаев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в один лист можно собрать данные с других листов Lis000iq Microsoft Office Excel 12 24.08.2015 12:51
открытие нескольких книг одним макросом и закрытие книг другим макросом kursant95 Microsoft Office Excel 6 27.01.2011 16:54
Как собрать данные из листов asas2010 Microsoft Office Excel 3 30.03.2010 08:59
Как собрать данные из множества книг и сравнить их? artem5500 Microsoft Office Excel 3 10.07.2009 18:54
копирование листов из закрытых книг mephist Microsoft Office Excel 4 10.07.2009 17:18