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]
Добрый вечер. Обьясните почему 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
К сообщению приложен файл:
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]
Потому, что 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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
все понятно только что означают две черточки ?
все понятно только что означают две черточки ? buskopan
Ответить
Сообщение все понятно только что означают две черточки ? Автор - 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
Ответить
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] как то так не получается. не стал создавать новой темы так как посчитал что это не такое далекое от этой темы обсуждение .спасибо
Спасибо. А как вывести в этом примере адрес строки используя 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
Сообщение отредактировал 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] не стал создавать новой темы
Зря. В следующий раз создавайте.
Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки. Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно [vba]Код
Private Sub cb1_Change() MsgBox "Строка № " & WorksheetFunction.Match(--Me.cb1.Value, Worksheets("test").Range("A1:A13"), False) End Sub
[/vba] не стал создавать новой темы
Зря. В следующий раз создавайте. _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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 найти первую пустую ячейку в этой строке. Мне нужно чтобы он указал строку в которой сидит число. Запутанно объясняю конечно, В общем мне нужен номер строки. Для начала. Если сможете помочь с полным решением буду очень признателен и доволен как слон. Зря. В следующий раз создавайте.
Договорились.
Это Вы что имеете в виду? У строки есть номер, а адрес - это у ячейки. Если нужен номер, то не ВПРом, а ПОИСКПОЗом можно
мне нужно основываясь на vlookup (как теперь выяснилось основываясь на match) в строке найти первую пустую ячейку. Поэтому мне нужно наверное сначала найти номер строки. А потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке. Мне нужно чтобы он указал строку в которой сидит число. Запутанно объясняю конечно, В общем мне нужен номер строки. Для начала. Если сможете помочь с полным решением буду очень признателен и доволен как слон. Зря. В следующий раз создавайте.
Договорились.buskopan
Сообщение отредактировал 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]На сторонние ресурсы нельзя ложить. Уберите всякие красивости, оставьте только нужное - тогда влезет сюда.
Файл не крепился к предыдущему сообщению. удалено администрацией [moder]На сторонние ресурсы нельзя ложить. Уберите всякие красивости, оставьте только нужное - тогда влезет сюда. buskopan
Сообщение отредактировал 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
Errare humanum est, stultum est in errore perseverare
Ответить
buskopan
Дата: Среда, 17.09.2014, 19:23 |
Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
это все я читал уже. мне не удается определить ячейку совместно с использованием match и посадить значение в textbox В любом случае спасибо. продолжу попытки.
это все я читал уже. мне не удается определить ячейку совместно с использованием match и посадить значение в textbox В любом случае спасибо. продолжу попытки. buskopan
Ответить
Сообщение это все я читал уже. мне не удается определить ячейку совместно с использованием 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 найти первую пустую ячейку в этой строке чтобы он указал строку в которой сидит число
увязать в одну логическую цепочку. Если с пустыми ячейками все ясно, то непонятно, как в них может быть число...
совместно с использованием match
Чем обусловлено применение именно match? Берется Cells(1,1).End(xldown).row от него xltoright. Это если по первому столбцу определять. Но непонятно как все этов строке найти первую пустую ячейку потом уже собираюсь методом xltoleft найти первую пустую ячейку в этой строке чтобы он указал строку в которой сидит число
увязать в одну логическую цепочку. Если с пустыми ячейками все ясно, то непонятно, как в них может быть число...The_Prist
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 столбцами, метод отказывается работать.
Чем обусловлено применение именно 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
Сообщение отредактировал 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
Ответить
Сообщение Разобрался. Можно сделать проще чем я все замудрил . [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
Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе? Тем более, что оно будет равно значению Комбобокса
Так нужно? [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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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]
Одно противоречит другому. Зачем Вам значение из столбца В в Текстбоксе?
Да, запутал я вас. Сделал так. Все что хотел получил. Спасибо за помощь [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
Сообщение отредактировал 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?
Я бы на Вашем месте не был так уверен. Введите в ячейку ВС8 значение 40 и в Комбобокс значение 25010. Что получилось в Текстбоксе? 30? А нужно 40. Вы что, думаете, я просто так написал у себя в коде блок с IF? _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Я бы на Вашем месте не был так уверен. Введите в ячейку ВС8 значение 40 и в Комбобокс значение 25010. Что получилось в Текстбоксе? 30? А нужно 40. Вы что, думаете, я просто так написал у себя в коде блок с IF? Автор - _Boroda_ Дата добавления - 17.09.2014 в 21:22