русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Naeel Maqsudov


Дата добавления: 2015-08-31; просмотров: 531; Нарушение авторских прав


14.10.2005, 20:49

Нет предела свершенству!
Замените 3 действия одним!


Sub Ravno()
Dim R1 As Range, R2 As Range, c As Range, DiffAddr As String
DiffAddr = ""
With Selection.Areas
If .Count = 2 Then
Set R1 = .Item(1)
Set R2 = .Item(2)
If R1.Rows.Count = R2.Rows.Count And _
R1.Columns.Count = R2.Columns.Count Then
For Each c In R2
If c.Value <> Cells(c.Row - R2.Row + R1.Row, c.Column - R2.Column + R1.Column).Value Then
DiffAddr = DiffAddr & "," & c.Address(False, False)
End If
Next
DiffAddr = Mid(DiffAddr, 2)
If DiffAddr = "" Then
MsgBox "These ranges are equals. Congratulations!!!"
Else
Range(DiffAddr).Select
MsgBox Selection.Cells.Count & " wrong cell(s) was found."
End If
Else
MsgBox "These ranges are not equals because its size is different."
End If
Else
MsgBox "Select exactly TWO ranges, please."
End If
End With
End Sub


Теперь надо выделить один (эталоный) массив, затем с клавишей Ctrl второй (порядок выделения важен!), в котором ищутся отличия и запустить макрос. Он найдет и выделит ВСЕ отличия.

PS
Поясню прелесть выделения нескольких ячеек:
Выделенные ячейки можно редактировать "прыгая" по ним клавишей Enter. Главное - это не нажимать стрелок.

Avsha

15.10.2005, 09:32

Naeel Maqsudov,

Спасибо за вариант,
я тоже думал, как нормальный (или ненормальный) :) максималист о выделении обоих диапазонов за раз.

Но есть ограничение при этом способе выбора, оно следущее:
Если выбирать один диапазон с помощью клавиатуры, например длинный столбец длиной под 1000 ячеек,
то я использую удобное сочтание Shift-Ctrl-стрелка вниз, - выделяется столбец до "упора" - последнего значения.
Но выделить одновременно два таких столбца - удобным способом у меня не очень получается.

Хотя для небольших диапазонов - ваш вариант несомненно выигрывает по лаконичности.



<== предыдущая лекция | следующая лекция ==>
Редактирование формулы массива | Naeel Maqsudov


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.