powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в коде VBA (Функция Vlookup)
6 сообщений из 6, страница 1 из 1
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510602
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Set WB = ActiveWorkbook

' 1 Определяем левый верхний угол сводной таблицы на листе Global B2C


WB.Activate
Set pvt = Worksheets("Global B2C CSAT").PivotTables(1)
Set rng = pvt.TableRange1
Startrow = rng.Cells(1, 1).Row + 2
Startcolumn = rng.Cells(1, 1).Column

'Копируем в файл CHECK названия текущих 6-ти месяцев

WB.Worksheets("Global B2C CSAT").Cells(Startrow, Startcolumn).Resize(6, 1).Copy
ThisWorkbook.Worksheets(1).Cells(3, 1).PasteSpecial Paste:=xlPasteValues


' На листе Check суммируем кол-во инцидентов B2C

WB.Activate
For j = 3 To 8
For Each ws In Worksheets
If ws.Name Like "*B2C*" And ws.Name <> "Global B2C CSAT" Then

'Определяем Range текущей сводной таблицы

Set pvt = ws.PivotTables(1)
Set rng = pvt.TableRange1

K = K + Application.WorksheetFunction.VLookup(ThisWorkbook.Worksheets("CHECK").Cells(j, 1).Value, WB.ws.rng, 2, 0)
MsgBox ActiveWorkbook.Name

End If
Next ws
ThisWorkbook.Worksheets("CHECK").Cells(j, 1).Value = K
K = 0

Next j





Добрый день!

Строчка в конце кода….K = K +
Не работает.
В ней идет обращение через vlookup из текущей книги к другой. И я не понимаю, как правильно к ней обратиться.
Большое спасибо!
...
Рейтинг: 0 / 0
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510605
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ThisWorkbook - это не другая книга, эта книга, в которой выполняется макрос

http://www.sql.ru/faq/faq_topic.aspx?fid=4344
...
Рейтинг: 0 / 0
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510615
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

это я прекрасно понимаю.

В формуле Vlookup ищется значение ИЗ Thisworkbook, но в ДРУГОЙ книге (которая была открыта в начале макроса)
И именно к этой другой книге я не знаю как обратиться.
Изначально я назвала ее wb.
Активным листом, на мой взгляд в теле цикла должен быть ws
Но выражение wb.ws.rng не работает!

А если написать просто rng в Vlookup то похоже на то, что поиск будет производиться в Thisworkbook
...
Рейтинг: 0 / 0
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510621
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot,
Код: vbnet
1.
K = K + Application.WorksheetFunction.VLookup(ThisWorkbook.Worksheets("CHECK").Cells(j, 1).Value, rng, 2, 0)


rng это тот самый диапазон ячеек из сводной. Хотя я не люблю такой подход(сводные несколько специфичны и работать с ними как с простым диапазоном может еще аукнуться)
...
Рейтинг: 0 / 0
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510633
Takayavot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Спасибо!
Я только что нашла ошибку.
Просто rng действительно ссылается на нужную мне книгу и лист.

Я по-другому не придумала. Если научите как, буду очень признательна.
Я, кстати, подписана, на ваш сайт )
...
Рейтинг: 0 / 0
Помогите найти ошибку в коде VBA (Функция Vlookup)
    #39510686
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TakayavotЕсли научите какВ Вашем случае особо-то ничего и надо выдумывать больше. Я написал, что лично я не люблю так использовать сводные. Если вдруг хоть что-то измениться в сводной - сразу ошибка в формуле или еще хуже - неверный результат. Плюс не во всех версиях Excel есть возможность заполнять все ячейки значениями группы. Я использую сводные как инструмент анализа, все выборки как правило с исходной таблицы делаю.
Вот и все. Но каждый делает так, как умеет и как ему понятнее и удобнее. В том числе и я. И считаю, что это правильно. Нельзя научиться всему и сразу :) Поэтому можно только учиться, учиться и еще раз учиться
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в коде VBA (Функция Vlookup)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]