Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение двух листов Excel. по формулам и значениям. 
V
    Опции темы
Валк
Дата 27.7.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Есть два листа в двух разных книгах (или в одной, не суть). Важно то, что листы имеют связи с другими листами/книгами и формулы в ячейках.
Как я могу сравнить два листа на предмет различия/совпадения в формулах/значениях (если в этой ячейке нет формулы)?  
PM MAIL WWW   Вверх
Izuver
Дата 27.7.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Можно конечно воспользоваться "=ЕТЕКСТ()" или еще какой проверкой, а так задача как-то непонятна. Конкретней, какие ячейки сравнить-то нужно или их может несколько 
PM MAIL ICQ   Вверх
Валк
Дата 28.7.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Сравнивать надо все ячейки листа, т. е. листы полностью. Т. е. вот у тебя 2 разных файла *.xls, как можно сравнить два листа из этих книг? 
PM MAIL WWW   Вверх
Izuver
Дата 29.7.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



на предмет одинаковости значений всех ячеек? 
PM MAIL ICQ   Вверх
ИгнатьевАлексей
Дата 30.7.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: 2
Всего: 3



Если тебе известен диапазон ячеек на листах, который подлежит сравнению, то я бы так сделал:
Код

Sub CellsCompare()
 
 Dim currentCell As Range
 Dim allRange As Range
 
 Set allRange = Worksheets("Лист1").Range("A1:D10")
 
 For Each currentCell In allRange
    If currentCell.Value <> Worksheets("Лист2").Range(currentCell.Address).Value Then
        currentCell.Interior.ColorIndex = 3 ' ячейку первого листа выделяем цветомпри несовпадении значений
    End If
 Next

End Sub

Это сравниваем значения. Аналогично другие всевозможные свойства, в твоем случае: 
.Formula
.FormulaLocal
.FormulaArray

А вот если ты не знаешь сколько ячеек надо сравнивать (т.е. работа с документами разной величины) , др. словами, надо сравнить все непустые ячейки, то я и сам присоединяюсь к твоему вопросу!  smile 


 


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Валк
Дата 1.8.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Понимаете, мне надо сравнить содержимое одинаковых ячеек в разных листах (и эти листы в разных книгах). Если это какое-то значение, то надо сравнивать значения, если это формула - надо сравнивать формулы.

Добавлено @ 12:33 
ИгнатьевАлексей
Я попробовал твой макрос, выдаёт ошибку в строке:
If currentCell.Value <> Worksheets("Лист2").Range(currentCell.Address).Value Then
PM MAIL WWW   Вверх
ИгнатьевАлексей
Дата 1.8.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: 2
Всего: 3



Какая ошибка?

А лучше локализуй тот оператор, который не проходит. Для этого попробуй разные фрагменты этой строки. 
Например:
Код

Worksheets("Лист2").Activate

узнаешь видит ли лист программа и т.п.

Одним словом, поработай!   smile 


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Валк
Дата 22.8.2006, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Приношу свои извинения, что не отписал о результатах.
Проблема решена, только не кодом VBA. Я просто нашёл автора книг и узнал у него идентичны ли книги.

Это сообщение отредактировал(а) Валк - 22.8.2006, 07:04
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0732 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.