1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Как подправить код макроса?

Тема в разделе "Visual Basic", создана пользователем tkaterina89, 9 ноя 2010.

  1. tkaterina89

    tkaterina89 Гость

    Репутация:
    0
    Есть excel файл, в ячейках A1:A96 стоят фразы, в ячейках F1:F96 стоят те же фразы, но в другом порядке. В ячейках G1:G96, H1:H96, I1:I96 информация по этим фразам.
    Я написала код:
    Код:
    Sub Find_Matches()
    Dim CompareRange As Variant, X As Variant, Y As Variant, N As String
    Set CompareRange = Range("F1:I96")
    For Each X In Selection
    For Each Y In CompareRange
    If X = Y Then X.Offset(0, 1) = X
    Next Y
    Next X
    End Sub
    Он делает следующее: я выбираю слово из столбца А, он ищет его в столбце F и вставляет рядом с выбранным словом в столбце В.

    Теперь проблема такая:

    Как сделать так, чтобы копировалась информация из соседних ячеек (найденного слова) G, H и I в последующие ячейки C, D и E?
    В моем примере это будет 3 ячейки, а как сделать так чтоб назначать количество копируемых ячеек?
     

    Вложения:

    • Как подправить код макроса?
      ______.JPG
      Размер файла:
      68 КБ
      Просмотров:
      34
  2. alex77755

    alex77755 Well-Known Member

    Репутация:
    0
    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    А не проще воспользоваться формулой ВПР?
     
  3. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    8
    1. он ищет его в диапазоне F1:I96, т.е. во всех 4х столбцах. задавайте столбец F1:F96
    2. пробовать как-то так
    Код:
    If X = Y Then 
    X.Offset(0, 1) = X
    X.Offset(0, 2) = Y.Offset(0, 1).Value
    X.Offset(0, 3) = Y.Offset(0, 2).Value
    X.Offset(0, 4) = Y.Offset(0, 3).Value
    end if
    т.е. задали kolvo =3 и вперед...
    Код:
    If X = Y Then 
    X.Offset(0, 1) = X
    For i=1 to kolvo
    X.Offset(0, i+1) = Y.Offset(0, i).Value
    Next
    end if
    кстати, есть стандартные функции для поиска.
     
  4. tkaterina89

    tkaterina89 Гость

    Репутация:
    0
    Ой, спасибо огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ПОЛУЧИЛОСЬ!!!!!! :YES:
    А можно сделать так, чтоб не нажимать на каждое слово и не вызывать макрос.
    Т е чтоб он автоматически выполнялся для всех слов в слолбце А??
     
  5. tkaterina89

    tkaterina89 Гость

    Репутация:
    0
    Все, сама исправила!!! Всем БОЛЬШОЕ СПАСИБО!!!!
     
  6. VBAaddict

    VBAaddict Гость

    Репутация:
    0
    Самое интересное в этом всем, что эта задача элементарно решается в Access без всякого программирования
    1) Таблица на основе столбца А
    2) Таблица на основе остальных непустых столбцов
    3) Связывание в запросе по полю (1)
    4) Вывод запроса с экспортом в Эксель

    Вообще, плохо мы знаем офис, товарищи... Сам такой же...
     
Загрузка...

Поделиться этой страницей