SAPфорум.RU https://sapboard.ru/forum/ |
|
Выбор данных из BEx https://sapboard.ru/forum/viewtopic.php?f=12&t=93866 |
Страница 1 из 1 |
Автор: | Rayman [ Пт, окт 21 2016, 10:03 ] |
Заголовок сообщения: | Выбор данных из BEx |
Здравствуйте. Изучаю sap bw. В данный момент я сделал запрос, вывел его на "Технический лист", на листе "Отчет" нарисовал шапку и под шапку хочу подставить данные с технического листа, а собственно из BEx запроса. Вариант подстановки запроса под шапкой на листе отчетности не подходит. Хочу отметить, что bex запрос, и та таблица которая выводится - динамическая. И копировать нужно таблицу выкидывая 2 первые строки, так как там не значения, а шапка. Вопрос: как выделить динамическую таблицу BEx запроса и скопировать ее на лист отчета в нужное место? Делал с помощью vba статическую таблицу, там все более или менее просто, можно хоть формулами экселя все сделать. |
Автор: | Air_demon [ Вт, окт 25 2016, 09:31 ] |
Заголовок сообщения: | Re: Выбор данных из BEx |
http://sapland.ru/articles/stats/2013/1/ispolizovanie-kollektsii-pri-obrabotke-vihodnih-dannih-bex-zaprosov.html |
Автор: | Rayman [ Вт, окт 25 2016, 11:24 ] |
Заголовок сообщения: | Re: Выбор данных из BEx |
Спасибо за ответ, написал данный код, но сваливается в ошибку то прорабатывает макрос, то нет. Есть варианты, что я сделал не так? Открываю книгу, нажимаю изменить значения (новый выбор) и сваливается. С уважением. Code: Public Function BEx() As BExApplication Set BEx = Application.Run("BExAnalyzer.xla!GetBEx", ThisWorkbook) End Function Sub BExOnRefresh(ParamArray varname()) If varname(0) = "DP_2" Then 'откуда DPOffsetC = varname(1).Column DPOffsetR = varname(1).Row + 2 DPOffsetLC = varname(1).Column + varname(1).Columns.Count - 1 DPOffsetLR = varname(1).Row + varname(1).Rows.Count - 2 'куда shiftR = 34 shiftC = 2 Dim mRng As Range Set mRng = Sheets("Технический лист").Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC)) If Application.CountA(mRng) = 0 Then MsgBox "Empty!!!" Exit Sub Else mRng.Copy Sheets("Ведение данных").Cells(shiftR, shiftC).PasteSpecial xlPasteValues End If End If End Sub |
Автор: | G [ Сб, дек 03 2016, 17:21 ] |
Заголовок сообщения: | Re: Выбор данных из BEx |
Если не будет получаться с готовыми решениями, напишите в эту тему, я накидаю кое-что своё, оно по другим принципам сделано, но возможно сгодится. Избегайте обращений к листу по заголовкам: Sheets("Технический лист").Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC)) Лучше по имени: Лист4.Range(Cells(DPOffsetR, DPOffsetC), Cells(DPOffsetLR, DPOffsetLC)) А то захочется переименовать лист -- и ищи в коде все вхождения. Или пользователь переименует. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |