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

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

  1. tkaterina89

    tkaterina89 Гость

    Есть excel файл, в ячейках A1:A96 стоят фразы, в ячейках F1:F96 стоят те же фразы, но в другом порядке. В ячейках G1:G96, H1:H96, I1:I96 информация по этим фразам.
    Я написала код:
    Код (LotusScript):
    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
      ______.JPG
      Размер файла:
      68 КБ
      Просмотров:
      34
  2. alex77755

    alex77755 Well-Known Member

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    1. он ищет его в диапазоне F1:I96, т.е. во всех 4х столбцах. задавайте столбец F1:F96
    2. пробовать как-то так
    Код (LotusScript):
    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 и вперед...
    Код (Text):
    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 Гость

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

    tkaterina89 Гость

    Все, сама исправила!!! Всем БОЛЬШОЕ СПАСИБО!!!!
     
  6. VBAaddict

    VBAaddict Гость

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

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

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