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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.04.2008, 20:04   #1
corsarlt
 
Регистрация: 01.04.2008
Сообщений: 5
По умолчанию VBA i Excel

Здравствуйте, експерты. Помогите пожалуйста с кодом. есть 2 столбца: A1; C1, в которых записаны названия месяцов. Код ищет НЕ совпадающие названия В ОБОИХ столбцах и записывает их в отдельный столбец E1. Однако когда я перемещаю данные из столбца C1 в столбец B1, код записывает слова только из одного столбца A1 и вразброс. Нужно, чтобы данные были в столбцах A1; B1, а не повторяющие слова вписывались в столбец C1

Заранее благодарен за любые ответы.


-------------------------
Sub spisok()
k = 1
For i = 1 To 10
Set S = Range("C1:C10").Find _
(What:=Cells(i, 1).Value, LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If S Is Nothing Then
Cells(k, 5).Value = Cells(i, 1).Value
k = k + 1
End If
Set S = Range("A1:A10").Find _
(What:=Cells(i, 3).Value, LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If S Is Nothing Then
Cells(k, 5).Value = Cells(i, 3).Value
k = k + 1
End If
Next i
End Sub
corsarlt вне форума
Старый 02.04.2008, 05:36   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Не понятно, что нужно. Поменять в Вашем коде номера столбцов?
Если у Вас с этим проблема, то советую, например, вместо
Код:
Cells(k, 5).Value = Cells(i, 3).Value
использовать
Код:
Cells(k, "E").Value = Cells(i, "C").Value
для большей наглядности.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 02.04.2008, 15:52   #3
corsarlt
 
Регистрация: 01.04.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не понятно, что нужно. Поменять в Вашем коде номера столбцов?
Если у Вас с этим проблема, то советую, например, вместо
Код:
Cells(k, 5).Value = Cells(i, 3).Value
использовать
Код:
Cells(k, "E").Value = Cells(i, "C").Value
для большей наглядности.


Спасибо за ответ. Но код выводит все записи подряд, а мне надо, чтобы выводил не повторяющиеся слова с обеих столбцов.
corsarlt вне форума
Старый 03.04.2008, 06:13   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если я правильно понял, то нужно в столбец "C" занести все уникальные значения из столбцов "A" и "B".
Если так, то эту задачу можно решить оригинальным способом:
Сначала создадим коллекцию из значений столбцов "A" и "B", затем вставим в столбец "C" все члены нашей коллекции.
Такой способ хорош тем, что не нужно делать никаких проверок и поисков. Просто, двух одинаковых членов коллекции быть не может. Поэтому, достаточно проигнорировать возможную ошибку при добавлении в коллекцию уже существующего члена (в коде это оператор "On Error Resume Next").
Код:
Sub Spisok()

    Dim myCol As New Collection, i As Long, El As Variant
    
    On Error Resume Next
    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        myCol.Add Cells(i, "A"), CStr(Cells(i, "A"))
    Next
    For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row
        myCol.Add Cells(i, "B"), CStr(Cells(i, "B"))
    Next
    On Error GoTo 0
    
    i = 1
    For Each El In myCol
        Cells(i, "C") = El
        i = i + 1
    Next

End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
очень громоздкие финансовые модели в Excel, а Excel не тянет Ragazza Microsoft Office Excel 7 03.10.2007 20:08
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28
из Excel в Dos Lyudmila Общие вопросы Delphi 1 01.05.2007 10:03
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11