Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в коде VBA (Функция Vlookup) / 6 сообщений из 6, страница 1 из 1
25.08.2017, 15:33
    #39510602
Takayavot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в коде VBA (Функция Vlookup)
Код: 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
25.08.2017, 15:35
    #39510605
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в коде VBA (Функция Vlookup)
ThisWorkbook - это не другая книга, эта книга, в которой выполняется макрос

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

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

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

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


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

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

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


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