Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Макрос вместо Формулы

Автор Кот, 08.01.2012, 09:34

« назад - далее »

Кот

Здравствуйте! У меня такой вопрос, имеется функция "выбор значения из диапозона ячеек по двум критериям" (кстати, код мне помогали делать на этом форуме). Сейчас у меня появилась необходимость заменить функцию макросом с теми же условиями отбора, т. е. "выбор значения из диапозона ячеек по двум критериям". В примере использована эта функция, вот код -
'усовершенствованная версия ВПР(VLOOKUP2), но выбор по трем критериям
Function VLOOKUP4(Диапазон_поиска As Range, N_столбца_результата As Integer, _
      N_столбца_поиска_1 As Integer, Искомое_значение_1 As Variant, _
      N_фхождения As Integer, _
      Optional N_столбца_поиска_2, Optional Искомое_значение_2, _
      Optional N_столбца_поиска_3, Optional Искомое_значение_3)
Application.Volatile True
Dim I As Integer
Dim iCount As Integer
Dim z_ As Boolean, x_ As Boolean, c_ As Boolean
If IsMissing(N_столбца_поиска_2) Then N_столбца_поиска_2 = N_столбца_поиска_1: Искомое_значение_2 = Искомое_значение_1
If IsMissing(N_столбца_поиска_3) Then N_столбца_поиска_3 = N_столбца_поиска_1: Искомое_значение_3 =     Искомое_значение_1
     For I = 1 To Диапазон_поиска.Rows.Count
    z_ = Диапазон_поиска.Cells(I, N_столбца_поиска_1) = Искомое_значение_1
    x_ = Диапазон_поиска.Cells(I, N_столбца_поиска_2) = Искомое_значение_2
    c_ = Диапазон_поиска.Cells(I, N_столбца_поиска_3) = Искомое_значение_3
   If z_ * x_ * c_ Then
  iCount = iCount + 1
End If
      If iCount = N_фхождения Then
     VLOOKUP4 = Диапазон_поиска.Cells(I, N_столбца_результата)
    Exit For
   End If
  Next I
End Function


И еще такой вопрос, не зависимо от результата первого вопроса, в примере будет видно - есть кнопка копировать значение из определенной ячейки, значение может меняться. Нужно сопировать только значение, в примере я использовал тупо записанный макрос копирования. Все работает но появилась проблема, дело в том что скопированные значения это логин или пароль или почтовый адрес и вставляется он при входе на разные торенты, форумы и т. д., и при вставке после значения появляются пробелы которые понимаются как знаки в результате чего "неправильный логин или пароль" а т. к. при вводе пароля видны только точки а пароль из 10 знаков то сидеть и пересчитывать это проблема!
Если кто может помогите.

nilem

По первому вопросу можно так попробовать

Кот

По первому вопросу все отлично, а вот по второму глухо. Произвел запись макроса при копировании ячейки, все работает но вот при вставке вставляет в конце два лишних пробела и все "неверный логин или пароль". Я читал что есть функции которые убирают лишние пробелы - LTrim, RTrim, Trim. Может кто знает как их применить, а то я 2 часа парился ничего не получается?

kuklp

И пишите:
    Me.[b6] = Trim(.Cells(i, 3))
    Me.[d6] = Trim(.Cells(i, 4))
    Me.[F6] = Trim(.Cells(i, 5))

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Кот

Не совсем понял куда вставлять в код если можно немного подробнее.

kuklp

В модуле листа Данные вместо строк:
                Me.[b6] = .Cells(i, 3)
                Me.[d6] = .Cells(i, 4)
                Me.[F6] = .Cells(i, 5)

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Кот

Нашел, вставил, не помогает :-\

Кот

Есть два кода, вот именно в них надо добавить Trim но куда и как не знаю.

Sub Макрос1()
'    Range("B6").Select
    Selection.Copy
End Sub


Sub Макрос1()
'    Range("B6").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

kuklp

Да не надо никуда ничего добавлять. Никаких лишних пробелов Эксель не вставляет, см. скрин.
А вообще Вы пытаетесь изобрести велосипед на квадратных колесах. Для этого в любом браузере есть менеджер паролей и менеджер закладок, см. скрин2.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Кот

А ни кто не говорит что вставляет XL, но два пробела все равно есть, заклади браузера не сохраняют логин и пароль в большинстве случаев, менеджер паролей то же не всегда, а после перестановки винды ве равно приходиться все востонавливать а у меня все данные хранятя в XL файле. Ктати я не понял что на скринах (первых) я не силен в VBA, но все равно спасибо.