сортировка таблиц в Excel с помощью Vba

Тема в разделе "Visual Basic", создана пользователем plan905, 23 янв 2009.

Статус темы:
Закрыта.
  1. plan905

    plan905 Гость

    Нжуна помощь, сам со своими школьными знаниями байсика стою в тупики и не туда и не сюда...

    рассказываю что хочу добиться...
    есть список адресов где есть название улицы дома и квартиры, а хочется еще и индекс к адресу приписать...))) таблица с индексами тоже прилагается...

    help me... я то знаю что нужно составить цикл, который подберет индекс и знаю как его писать... все это легко... но как брать значения из таблицы, как их туда возращать, я к сожалению...(((не знаю...

    поэтому и прошу или ссылку на литру по теме или хотябы кусок программы... или помощь в написании... по возможности отблагодарюю))) хотя возможностей не много, но денег то на счет кину, если сделаем)))) писать сюда или plan.pnz@mail.ru
     
  2. plan905

    plan905 Гость

    таблица заполнена просто, сначала столбик с фамилией, потом с улицей, следующая номер квартиры...
    и вторая таблица, это таблица с индексами, первый столбик название улицы, второй собственно сам индекс!!!


    вот и нужно всего навсего сопоставить?????плиз... горит...
     
  3. Tanya

    Tanya Гость

    Можно использовать функцию =ВПР()

    = ВПР(искомое_значение;таблица ;номер_столбца ;интервальный_просмотр)

    Столбец A - Фамилия
    Столбец B - Улица
    Столбец C - Дом
    Столбец D - Квартира
    Столбец E - Индекс

    то есть в столбик E вводим формулу:
    = ЕСЛИ(ЕНД(ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь); " нет индекса "; ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь))

    Пояснения:
    ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь)
    искомое_значение = $B:$B - улица
    Лист2!$A$2:$B$2000 - на листе Лист2 в колонках A и B расположены улицы и соотв. им индексы (1 строка для заголовка)
    Строк в примере 1999, но, конечно может быть и больше и меньше ))))
    2 - возвращаемое значение из таблицы индексов находится во втором столбце
    Ложь - ищем точное соответствие

    Если поиск в таблице индекса не даст результата, то формула вернет значение ошибки #Н/Д.
    Для того что бы не портить вид первой таблицы :wacko:)) в формулу забиваем проверку на такую ошибку:
    ЕНД(ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь)) - она возвращает Истина(значение формулы #Н/Д) или Ложь

    и последний штрих: если формула возвращает ошибку, то ничего не выводим, а если возвращает, то выводим ее результат:
    = ЕСЛИ(ЕНД(ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь); " нет индекса "; ВПР($B:$B; Лист2!$A$2:$B$2000; 2; Ложь))


    Вот как-то так ... Справка по этим формулам есть в Excel, и там скорее всего будет описано понятнее )))
     
  4. Nightrain

    Nightrain Гость

    Код (Text):
    Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim j As Integer
    Dim street As String
    Dim Sh As Worksheet

    Set Sh = Sheets("Indexes")
    i = 2
    Do While Cells(i, 1) <> ""
    street = Cells(i, 2)
    j = 2
    Do While Sh.Cells(j, 1) <> ""
    If Sh.Cells(j, 1) = street Then
    Cells(i, 5) = Sh.Cells(j, 2)
    Exit Do
    End If
    j = j + 1
    Loop
    i = i + 1
    Loop
    Set Sh = Nothing
    End Sub
    Файл с рабочим примером отправил на почту
     
Загрузка...
Похожие Темы - сортировка таблиц Excel
  1. vladis222
    Ответов:
    0
    Просмотров:
    996
  2. vladis222
    Ответов:
    0
    Просмотров:
    889
  3. vera2014
    Ответов:
    0
    Просмотров:
    1.071
  4. Liori
    Ответов:
    2
    Просмотров:
    1.005
  5. FCDK
    Ответов:
    0
    Просмотров:
    1.264
Статус темы:
Закрыта.

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