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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 17:19   #1
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
Смех Сравнить, нельзя помиловать

нужно сравнить 2 столбца с текстовыми данными в exel.
и при найденых совпадениях выдилять их в цвет.
есть код но он чет заматерился при проверке 6х9
помогите плз.
зарание спасибо


Код:
Dim fname As String, curname As String
Dim numrow As Integer, numcol As Integer, i As Integer, j As Integer
Dim message1 As String
Dim addr As Variant
Dim cell As Variant
Dim var1(1 To 6, 1 To 9) As Variant
Dim var2(1 To 6, 1 To 9) As Variant
Dim flag(1 To 10) As Boolean
For i = 1 To 9
    flag(i) = False
Next i
fname = "книга.xls"  ' здесь название файла, откуда будут сравниваться ячейки в строках
curname = Windows(1).Caption
With Application.FileSearch
    .LookIn = ActiveWorkbook.path
    .Filename = fname  
    .SearchSubFolders = False
    If .Execute = 0 Then
        MsgBox "Не обнаружен файл"
        End
    Else
        fname = .FoundFiles(1)
    End If
End With
Workbooks.Open Filename:=fname
Range("A1").Select
For j = 1 To 9  'строки'
    For i = 1 To 6 'cтолбци'
        var1(i, j) = ActiveCell.FormulaR1C1
        ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    Next i
    Range("A1").Select
    ActiveCell.Offset(rowOffset:=j, columnOffset:=0).Activate
Next j
Windows(curname).Activate
Range("A1").Select   'начиная с ячейки а1'
For j = 1 To 9	'строка'
    For i = 1 To 6 'столбец'
        If var1(i, j) = ActiveCell.FormulaR1C1 Then
            flag(j) = True
            Exit For
        End If
        ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    Next i
    Range("A1").Select
    ActiveCell.Offset(rowOffset:=j, columnOffset:=0).Activate
Next j
Range("A1:F1").Select
For j = 1 To 9	'строка'
    If flag(j) = True Then
        Selection.Offset(j - 1, 0).Activate
        For Each cell In Application.Selection
            addr = cell.Address()
            Range(addr).Interior.ColorIndex = 6
        Next cell
    End If
    Range("A1:F1").Select
Next j
Господа - учитесь юзать поисковые машины
web-обитель | авто
madmaniac вне форума Ответить с цитированием
Старый 23.12.2010, 17:27   #2
NoLL
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 24
По умолчанию

Глянь сдесь.

http://programmersforum.ru/showthrea...highlight=NoLL
NoLL вне форума Ответить с цитированием
Старый 23.12.2010, 17:35   #3
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию

пасиб ))))
Господа - учитесь юзать поисковые машины
web-обитель | авто
madmaniac вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нельзя заупстить ни одной программы на компе Syltan Операционные системы общие вопросы 2 18.04.2010 01:34
почему под созданным пользователем нельзя зайти? Bat{CMD}_Men Общие вопросы Delphi 1 04.11.2009 10:47
Нельзя зайти на любую страницу, кроме как с localhost SwiP PHP 3 19.04.2009 15:37
Нельзя найти текст на странице Neeter Работа с сетью в Delphi 2 07.04.2009 19:51
Нельзя обнулить поле в записи?!! darkstarx Общие вопросы .NET 1 06.02.2008 23:53