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

Вход

Регистрация

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

 

= Мир MS Excel/ВПР не выдает никаких значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ВПР не выдает никаких значений (Макросы/Sub)
ВПР не выдает никаких значений
Antoha19 Дата: Четверг, 27.08.2020, 16:41 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Есть программка для подсчета цен. В нее входит ВПР, всю программу скидывать не буду скину только фрагмент, который отвечает за исполнение функции ВПР вот он:

[vba]
Код
Dim Compcode As Variant
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim rngRange As range
Set twb = ThisWorkbook

Set WS1 = ThisWorkbook.Worksheets("SK")
Set WS2 = ActiveWorkbook.Worksheets("List1")
Set rngRange = WS2.range("A:T")

jRow = Worksheets("SK").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
On Error Resume Next
For j = 9 To jRow
Compcode = WS1.Cells(j, 2).Value

With Worksheets("SK").Cells(j, 12)
Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 8, False).Value
End With

With Worksheets("SK").Cells(j, 15)
Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False).Value
End With
Next
[/vba]

Суть проблемы в том что на выходе ничего нет. Не поможете?
Заранее благодарен!


Сообщение отредактировал Antoha19 - Пятница, 28.08.2020, 08:51
 
Ответить
СообщениеЕсть программка для подсчета цен. В нее входит ВПР, всю программу скидывать не буду скину только фрагмент, который отвечает за исполнение функции ВПР вот он:

[vba]
Код
Dim Compcode As Variant
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim rngRange As range
Set twb = ThisWorkbook

Set WS1 = ThisWorkbook.Worksheets("SK")
Set WS2 = ActiveWorkbook.Worksheets("List1")
Set rngRange = WS2.range("A:T")

jRow = Worksheets("SK").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
On Error Resume Next
For j = 9 To jRow
Compcode = WS1.Cells(j, 2).Value

With Worksheets("SK").Cells(j, 12)
Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 8, False).Value
End With

With Worksheets("SK").Cells(j, 15)
Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False).Value
End With
Next
[/vba]

Суть проблемы в том что на выходе ничего нет. Не поможете?
Заранее благодарен!

Автор - Antoha19
Дата добавления - 27.08.2020 в 16:41
Hugo Дата: Четверг, 27.08.2020, 16:49 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
1. Правила.
2. Правила.
3. А где выход? :)
P.S. .Value лишнее, перед Value не хватает точки.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Четверг, 27.08.2020, 16:52
 
Ответить
Сообщение1. Правила.
2. Правила.
3. А где выход? :)
P.S. .Value лишнее, перед Value не хватает точки.

Автор - Hugo
Дата добавления - 27.08.2020 в 16:49
прохожий2019 Дата: Четверг, 27.08.2020, 16:50 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1244
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
и вам здрасьте
ну и причём тут ВПР?

.Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False).Value

[vba]
Код
With Worksheets("SK").Cells(j, 15)
.Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False)
End With
[/vba]


Сообщение отредактировал прохожий2019 - Четверг, 27.08.2020, 16:52
 
Ответить
Сообщениеи вам здрасьте
ну и причём тут ВПР?

.Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False).Value

[vba]
Код
With Worksheets("SK").Cells(j, 15)
.Value = Application.WorksheetFunction.VLookup(Compcode, rngRange, 6, False)
End With
[/vba]

Автор - прохожий2019
Дата добавления - 27.08.2020 в 16:50
Antoha19 Дата: Четверг, 27.08.2020, 17:03 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Пардон! Здрасте! Спасибо за реакцию. Но не помогло. Точка перед Value стоит, просто не выделил при копировании. В Лист("List1") я копирую данные из другого DBF фаила, может быть в этом проблема. Результат все тот же, пустые ячейки, если поменять тип на Integer, то нули.
 
Ответить
СообщениеПардон! Здрасте! Спасибо за реакцию. Но не помогло. Точка перед Value стоит, просто не выделил при копировании. В Лист("List1") я копирую данные из другого DBF фаила, может быть в этом проблема. Результат все тот же, пустые ячейки, если поменять тип на Integer, то нули.

Автор - Antoha19
Дата добавления - 27.08.2020 в 17:03
Hugo Дата: Четверг, 27.08.2020, 17:16 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Если так - см. пункт 1.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЕсли так - см. пункт 1.

Автор - Hugo
Дата добавления - 27.08.2020 в 17:16
Pelena Дата: Четверг, 27.08.2020, 18:05 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Antoha19, оформите код тегами с помощью кнопки # в режиме правки поста. Помогающих прошу не отвечать до исправления замечания
Исправлено


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеAntoha19, оформите код тегами с помощью кнопки # в режиме правки поста. Помогающих прошу не отвечать до исправления замечания
Исправлено

Автор - Pelena
Дата добавления - 27.08.2020 в 18:05
Antoha19 Дата: Пятница, 28.08.2020, 09:03 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Прошу прощения! Честно говоря правила прочитал вскользь, поэтому некоторые моменты упустил. Постараюсь исправиться. Никто не знает с чем может быть связана проблема, просто я все варианты, которые были мне доступны испробовал, но никакой реакции нет- пустая ячейка. Создавал отдельно переменные разных типов, всегда тот же результат, с той-лишь разницей, что если создаю переменную Integer например, товыдает нули. Я до этого применял формулу [vba]
Код
.FormulaR1C1
[/vba] все работало, но теперь надо, чтобы в ячейках были сразу числа. Можно конечно после формулы копировать и вставить данные, как чила, но совсем громоздко получается же, а учитывая как часто ВПР приходится использовать в Excel, хочется научиться писать силами VBA.

Заранее благодарен!
 
Ответить
СообщениеПрошу прощения! Честно говоря правила прочитал вскользь, поэтому некоторые моменты упустил. Постараюсь исправиться. Никто не знает с чем может быть связана проблема, просто я все варианты, которые были мне доступны испробовал, но никакой реакции нет- пустая ячейка. Создавал отдельно переменные разных типов, всегда тот же результат, с той-лишь разницей, что если создаю переменную Integer например, товыдает нули. Я до этого применял формулу [vba]
Код
.FormulaR1C1
[/vba] все работало, но теперь надо, чтобы в ячейках были сразу числа. Можно конечно после формулы копировать и вставить данные, как чила, но совсем громоздко получается же, а учитывая как часто ВПР приходится использовать в Excel, хочется научиться писать силами VBA.

Заранее благодарен!

Автор - Antoha19
Дата добавления - 28.08.2020 в 09:03
Pelena Дата: Пятница, 28.08.2020, 09:33 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Antoha19, скорей всего, VLookup просто не находит заданное значение в диапазоне.
Попробуйте убрать On Error Resume Next и посмотреть, если будет ошибка на строке с VLookup, то копать надо в этом направлении. Возможно, типы данных на совпадают.
В общем, нужно смотреть данные


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеAntoha19, скорей всего, VLookup просто не находит заданное значение в диапазоне.
Попробуйте убрать On Error Resume Next и посмотреть, если будет ошибка на строке с VLookup, то копать надо в этом направлении. Возможно, типы данных на совпадают.
В общем, нужно смотреть данные

Автор - Pelena
Дата добавления - 28.08.2020 в 09:33
Antoha19 Дата: Пятница, 28.08.2020, 12:44 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Все, на свежую голову я быстро разобрался. Вообщем проблема была в том, что я объявил переменные "WS1" и "WS2" как рабочие листы, затем пытался объявить листы как книги
Код
Set WS1 = ThisWorkbook.Worksheets("SK")

Код
Set WS2 = ActiveWorkbook.Worksheets("List1")
. Ну судя по всему чушь писал и поэтому ничего не получалось.
Всем спасибо за отзывчивость! :D
 
Ответить
СообщениеВсе, на свежую голову я быстро разобрался. Вообщем проблема была в том, что я объявил переменные "WS1" и "WS2" как рабочие листы, затем пытался объявить листы как книги
Код
Set WS1 = ThisWorkbook.Worksheets("SK")

Код
Set WS2 = ActiveWorkbook.Worksheets("List1")
. Ну судя по всему чушь писал и поэтому ничего не получалось.
Всем спасибо за отзывчивость! :D

Автор - Antoha19
Дата добавления - 28.08.2020 в 12:44
Hugo Дата: Пятница, 28.08.2020, 16:11 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Да нет... :)
Всё выше правильно - объявили как листы, листы и присваиваете...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеДа нет... :)
Всё выше правильно - объявили как листы, листы и присваиваете...

Автор - Hugo
Дата добавления - 28.08.2020 в 16:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ВПР не выдает никаких значений (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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