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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2009, 23:35   #1
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию VBA аналоги ВПР(), ГПР(), ПОИСКПОЗ()

В одной не очень удобной, но полезной книге по VBA нашел такой вариант поиска данных в диапазоне.

Dim c As rang
For Each c In [A1:A100]
If c.Value Like "*MS*" Then
c.Value = "Microsoft" ' находит в диапазоне все MS и заменяет их
End If
Next

Kак я понимаю это все-таки цикл. И его отработка занимает время (диапазоны бывают разные...). Может есть операторы VBA с аналогичным действием, как у формул ВПР(), ГПР(), ПОИСКПОЗ()

Во-вторых что значит Like, и чем он отличается от простого равно?
nemoomen вне форума Ответить с цитированием
Старый 04.03.2009, 23:43   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

ВПР = Application.WorksheetFunction.VLook up
ГПР = Application.WorksheetFunction.HLook up
ПОИСКПОЗ = Application.WorksheetFunction.Match

Пройдите по этой ссылке,
пролистайте страницу до конца вниз, и скачайте Справочник по функциям MS Excel от Microsoft Office.
Вот прямая ссылка на скачивание файла
В этом файле описаны аналоги встроенных функций Excel для работы из VBA

Цитата:
Во-вторых что значит Like, и чем он отличается от простого равно?
Выражение c.Value Like "*MS*" будет истинно, если c.Value содержит текст MS
(например, 123MSasd, Mspoi, и т.д.)

Выражение c.Value = "*MS*" будет истинно, только если c.Value состоит из 4-х указанных символов *MS*

И ещё: на сайте http://msoffice.nm.ru/faq/macros.htm есть много полезной информации по работе с VBA Excel

А самой полной и полезной литературой по VBA является файл справки:
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAXL10.CHM


--------- готовое решение для замены формулы ВПР (VLOOKUP) --------------
Цитата:
Надстройка LOOKUP предназначена для сравнения и подстановки значений в таблицах Excel.

Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.


В настройках программы можно задать:
  • где искать сравниваемые файлы (использовать уже открытый файл, загружать файл по заданному пути, или же выводить диалоговое окно выбора файла)
  • с каких листов брать данные (варианты: активный лист, лист с заданным номером или названием)
  • какие столбцы сравнивать (можно задать несколько столбцов)
  • значения каких столбцов надо копировать в найденные строки (также можно указать несколько столбцов)

Скачать надстройку для сравнения таблиц Excel и копирования данных из одинаковых строк


Последний раз редактировалось EducatedFool; 30.09.2013 в 09:35.
EducatedFool вне форума Ответить с цитированием
Старый 04.03.2009, 23:53   #3
nemoomen
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 58
По умолчанию Благодарю!

Программа требует xlmacr8.hlp, которого у меня нет. Что делать?

А самой полной и полезной литературой по VBA является файл справки:
C:\Program Files\Microsoft Office\OFFICE11\1049\VBAXL10.CHM


Он, к сожалению на английском...

Спасибо, господа!

Последний раз редактировалось nemoomen; 05.03.2009 в 03:09.
nemoomen вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент Text3D и аналоги Mixasik Компоненты Delphi 1 15.09.2008 12:15
ГПР..... Bu$ter Microsoft Office Excel 9 23.05.2008 09:28
Странное поведение ПОИСКПОЗ ZORRO2005 Microsoft Office Excel 5 19.05.2008 14:02
Аналоги функций xfoxx Общие вопросы C/C++ 4 26.03.2008 00:22
Accelerator Plus и аналоги ? Virtson Софт 7 17.01.2007 07:56