Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Vlookup и Range("имя таблицы") - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Vlookup и Range("имя таблицы")
buskopan Дата: Вторник, 16.09.2014, 21:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер. Обьясните почему vlookup выдает ошибку

Уже все варианты перепробовал. Нет и все. Хотя такой синтаксис работает в этой книге с именами и фамилиями.

[vba]
Код

Private Sub cb1_Change()

Me.tb.Value = Application.VLookup(Me.cb1.Value, Worksheets("test").Range("test2"), 3, False)

End Sub

Private Sub tb_Change()

End Sub

[/vba]
К сообщению приложен файл: 321.xlsm (29.7 Kb)


Сообщение отредактировал buskopan - Вторник, 16.09.2014, 21:24
 
Ответить
СообщениеДобрый вечер. Обьясните почему vlookup выдает ошибку

Уже все варианты перепробовал. Нет и все. Хотя такой синтаксис работает в этой книге с именами и фамилиями.

[vba]
Код

Private Sub cb1_Change()

Me.tb.Value = Application.VLookup(Me.cb1.Value, Worksheets("test").Range("test2"), 3, False)

End Sub

Private Sub tb_Change()

End Sub

[/vba]

Автор - buskopan
Дата добавления - 16.09.2014 в 21:23
_Boroda_ Дата: Вторник, 16.09.2014, 21:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Потому, что Me.cb1.Value - это текст. А Вы ищете его в числах.

[vba]
Код
Private Sub cb1_Change()
Me.tb.Value = Format(Application.VLookup(--Me.cb1.Value, Worksheets("test").Range("A3:C13"), 3, False), "DD.MMM")
End Sub
[/vba]
К сообщению приложен файл: 321_1.xlsm (30.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПотому, что Me.cb1.Value - это текст. А Вы ищете его в числах.

[vba]
Код
Private Sub cb1_Change()
Me.tb.Value = Format(Application.VLookup(--Me.cb1.Value, Worksheets("test").Range("A3:C13"), 3, False), "DD.MMM")
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 16.09.2014 в 21:37
buskopan Дата: Вторник, 16.09.2014, 21:49 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
вот оно что. спасибо.
 
Ответить
Сообщениевот оно что. спасибо.

Автор - buskopan
Дата добавления - 16.09.2014 в 21:49
buskopan Дата: Вторник, 16.09.2014, 21:55 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
VLookup(--Me.cb1.Value,

все понятно только что означают две черточки ?
 
Ответить
Сообщение
VLookup(--Me.cb1.Value,

все понятно только что означают две черточки ?

Автор - buskopan
Дата добавления - 16.09.2014 в 21:55
_Boroda_ Дата: Вторник, 16.09.2014, 22:01 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что означают две черточки ?

Что такое -- или как превратить ИСТИНА в 1, а ЛОЖЬ в 0?

Автор - _Boroda_
Дата добавления - 16.09.2014 в 22:01
buskopan Дата: Среда, 17.09.2014, 17:08 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо. А как вывести в этом примере адрес строки используя Vlookup ?

[vba]
Код

Private Sub cb1_Change()

Dim rowN as long   
rowN = Application.VLookup(--Me.cb1.Value, Worksheets("test").Range("A3:C13"), 3, False)
msgbox address(rowN)

End Sub

[/vba]

как то так не получается. не стал создавать новой темы так как посчитал что это не такое далекое от этой темы обсуждение .спасибо


Сообщение отредактировал buskopan - Среда, 17.09.2014, 17:09
 
Ответить
СообщениеСпасибо. А как вывести в этом примере адрес строки используя Vlookup ?

[vba]
Код

Private Sub cb1_Change()

Dim rowN as long   
rowN = Application.VLookup(--Me.cb1.Value, Worksheets("test").Range("A3:C13"), 3, False)
msgbox address(rowN)

End Sub

[/vba]

как то так не получается. не стал создавать новой темы так как посчитал что это не такое далекое от этой темы обсуждение .спасибо

Автор - buskopan
Дата добавления - 17.09.2014 в 17:08
_Boroda_ Дата: Среда, 17.09.2014, 17:36 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
адрес строки

Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно
[vba]
Код
Private Sub cb1_Change()
MsgBox "Строка № " & WorksheetFunction.Match(--Me.cb1.Value, Worksheets("test").Range("A1:A13"), False)
End Sub
[/vba]
не стал создавать новой темы
Зря. В следующий раз создавайте.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
адрес строки

Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно
[vba]
Код
Private Sub cb1_Change()
MsgBox "Строка № " & WorksheetFunction.Match(--Me.cb1.Value, Worksheets("test").Range("A1:A13"), False)
End Sub
[/vba]
не стал создавать новой темы
Зря. В следующий раз создавайте.

Автор - _Boroda_
Дата добавления - 17.09.2014 в 17:36
buskopan Дата: Среда, 17.09.2014, 18:16 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно


мне нужно основываясь на vlookup (как теперь выяснилось основываясь на match) в строке найти первую пустую ячейку. Поэтому мне нужно наверное сначала найти номер строки. А потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке. Мне нужно чтобы он указал строку в которой сидит число. Запутанно объясняю конечно,

В общем мне нужен номер строки. Для начала. Если сможете помочь с полным решением буду очень признателен и доволен как слон.

Зря. В следующий раз создавайте.

Договорились.


Сообщение отредактировал buskopan - Среда, 17.09.2014, 18:19
 
Ответить
Сообщение
Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно


мне нужно основываясь на vlookup (как теперь выяснилось основываясь на match) в строке найти первую пустую ячейку. Поэтому мне нужно наверное сначала найти номер строки. А потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке. Мне нужно чтобы он указал строку в которой сидит число. Запутанно объясняю конечно,

В общем мне нужен номер строки. Для начала. Если сможете помочь с полным решением буду очень признателен и доволен как слон.

Зря. В следующий раз создавайте.

Договорились.

Автор - buskopan
Дата добавления - 17.09.2014 в 18:16
buskopan Дата: Среда, 17.09.2014, 18:21 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Файл не крепился к предыдущему сообщению.

удалено администрацией
[moder]На сторонние ресурсы нельзя ложить.
Уберите всякие красивости, оставьте только нужное - тогда влезет сюда.


Сообщение отредактировал buskopan - Среда, 17.09.2014, 18:24
 
Ответить
СообщениеФайл не крепился к предыдущему сообщению.

удалено администрацией
[moder]На сторонние ресурсы нельзя ложить.
Уберите всякие красивости, оставьте только нужное - тогда влезет сюда.

Автор - buskopan
Дата добавления - 17.09.2014 в 18:21
The_Prist Дата: Среда, 17.09.2014, 19:13 | Сообщение № 10
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Если сможете помочь с полным решением буду очень признателен и доволен как слон

Как определить последнюю ячейку на листе через VBA?
до кучи:
Как получить последнюю заполненную ячейку формулой?


Errare humanum est, stultum est in errore perseverare
 
Ответить
Сообщение
Если сможете помочь с полным решением буду очень признателен и доволен как слон

Как определить последнюю ячейку на листе через VBA?
до кучи:
Как получить последнюю заполненную ячейку формулой?

Автор - The_Prist
Дата добавления - 17.09.2014 в 19:13
buskopan Дата: Среда, 17.09.2014, 19:23 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
до кучи:

это все я читал уже. мне не удается определить ячейку совместно с использованием match и посадить значение в textbox

В любом случае спасибо. продолжу попытки.
 
Ответить
Сообщение
до кучи:

это все я читал уже. мне не удается определить ячейку совместно с использованием match и посадить значение в textbox

В любом случае спасибо. продолжу попытки.

Автор - buskopan
Дата добавления - 17.09.2014 в 19:23
The_Prist Дата: Среда, 17.09.2014, 20:01 | Сообщение № 12
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
совместно с использованием match

Чем обусловлено применение именно match?
Берется Cells(1,1).End(xldown).row
от него xltoright.
Это если по первому столбцу определять.
Но непонятно как все это
в строке найти первую пустую ячейку
потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке
чтобы он указал строку в которой сидит число

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


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Среда, 17.09.2014, 20:02
 
Ответить
Сообщение
совместно с использованием match

Чем обусловлено применение именно match?
Берется Cells(1,1).End(xldown).row
от него xltoright.
Это если по первому столбцу определять.
Но непонятно как все это
в строке найти первую пустую ячейку
потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке
чтобы он указал строку в которой сидит число

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

Автор - The_Prist
Дата добавления - 17.09.2014 в 20:01
buskopan Дата: Среда, 17.09.2014, 20:33 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Чем обусловлено применение именно match?
Берется Cells(1,1)


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

Может так нагляднее будет.


Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно
Private Sub cb1_Change()
MsgBox "Строка № " & WorksheetFunction.Match(--Me.cb1.Value, Worksheets("test").Range("A1:A13"), False)
End Sub

это работает с таблицей в один столбец, а если вместо A1 A13 вписать таблицу со 70 столбцами, метод отказывается работать.


Сообщение отредактировал buskopan - Среда, 17.09.2014, 20:33
 
Ответить
Сообщение
Чем обусловлено применение именно match?
Берется Cells(1,1)


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

Может так нагляднее будет.


Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки.
Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно
Private Sub cb1_Change()
MsgBox "Строка № " & WorksheetFunction.Match(--Me.cb1.Value, Worksheets("test").Range("A1:A13"), False)
End Sub

это работает с таблицей в один столбец, а если вместо A1 A13 вписать таблицу со 70 столбцами, метод отказывается работать.

Автор - buskopan
Дата добавления - 17.09.2014 в 20:33
buskopan Дата: Среда, 17.09.2014, 20:49 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Разобрался. Можно сделать проще чем я все замудрил .

[vba]
Код

Private Sub ComboBox1_Change()

st = WorksheetFunction.Match(--Me.ComboBox1.Value, Worksheets("Esas").Range("newtest"), False)
Me.lastPayment.Value = Range("B" & st).Value

End Sub

[/vba]

а оттуда уже плясать дальше.

Спасибо.
 
Ответить
СообщениеРазобрался. Можно сделать проще чем я все замудрил .

[vba]
Код

Private Sub ComboBox1_Change()

st = WorksheetFunction.Match(--Me.ComboBox1.Value, Worksheets("Esas").Range("newtest"), False)
Me.lastPayment.Value = Range("B" & st).Value

End Sub

[/vba]

а оттуда уже плясать дальше.

Спасибо.

Автор - buskopan
Дата добавления - 17.09.2014 в 20:49
_Boroda_ Дата: Среда, 17.09.2014, 20:50 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Private Sub ComboBox1_Change()
       r_ = WorksheetFunction.Match(--Me.ComboBox1.Value, Range("D1:D9999"), False)
       If Range("BS" & r_) = "" Then
           n_ = Range("BS" & r_).End(xlToLeft)
       Else
           n_ = Range("BS" & r_)
       End If
       tb.Value = n_
End Sub
[/vba]

текбокс должен отображать последнюю заполненную ячейку в этой строке

Me.lastPayment.Value = Range("B" & st).Value

Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе? Тем более, что оно будет равно значению Комбобокса


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Private Sub ComboBox1_Change()
       r_ = WorksheetFunction.Match(--Me.ComboBox1.Value, Range("D1:D9999"), False)
       If Range("BS" & r_) = "" Then
           n_ = Range("BS" & r_).End(xlToLeft)
       Else
           n_ = Range("BS" & r_)
       End If
       tb.Value = n_
End Sub
[/vba]

текбокс должен отображать последнюю заполненную ячейку в этой строке

Me.lastPayment.Value = Range("B" & st).Value

Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе? Тем более, что оно будет равно значению Комбобокса

Автор - _Boroda_
Дата добавления - 17.09.2014 в 20:50
buskopan Дата: Среда, 17.09.2014, 21:04 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе?

Да, запутал я вас.

Сделал так. Все что хотел получил. Спасибо за помощь

[vba]
Код

Private Sub ComboBox1_Change()

st = WorksheetFunction.Match(--Me.ComboBox1.Value, Worksheets("Esas").Range("newtest"), False)
Me.lastPayment.Value = Range("B" & st).Value

lastcolumn = ActiveSheet.Range("AP" & st).End(xlToRight).Column
Me.TextBox1.Value = Cells(st, lastcolumn) '
Me.TextBox2.Value = Cells(1, lastcolumn)

End Sub
[/vba]


Сообщение отредактировал buskopan - Среда, 17.09.2014, 21:06
 
Ответить
Сообщение
Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе?

Да, запутал я вас.

Сделал так. Все что хотел получил. Спасибо за помощь

[vba]
Код

Private Sub ComboBox1_Change()

st = WorksheetFunction.Match(--Me.ComboBox1.Value, Worksheets("Esas").Range("newtest"), False)
Me.lastPayment.Value = Range("B" & st).Value

lastcolumn = ActiveSheet.Range("AP" & st).End(xlToRight).Column
Me.TextBox1.Value = Cells(st, lastcolumn) '
Me.TextBox2.Value = Cells(1, lastcolumn)

End Sub
[/vba]

Автор - buskopan
Дата добавления - 17.09.2014 в 21:04
_Boroda_ Дата: Среда, 17.09.2014, 21:22 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Все что хотел получил.

Я бы на Вашем месте не был так уверен. Введите в ячейку ВС8 значение 40 и в Комбобокс значение 25010. Что получилось в Текстбоксе? 30? А нужно 40.
Вы что, думаете, я просто так написал у себя в коде блок с IF?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Все что хотел получил.

Я бы на Вашем месте не был так уверен. Введите в ячейку ВС8 значение 40 и в Комбобокс значение 25010. Что получилось в Текстбоксе? 30? А нужно 40.
Вы что, думаете, я просто так написал у себя в коде блок с IF?

Автор - _Boroda_
Дата добавления - 17.09.2014 в 21:22
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!