Всем доброго дня!
Вопрос мой следующий, я никогда не работал с макросами, связанными с "умными" таблицами. Но сейчас возникла необходимость создать сводную с постоянно обновляемым источником данных (меняется количество строк). Таким источником вижу "умную" таблицу. Иначе постоянно приходится обновлять через "источник данных" для корректировки количества строк.
Как работает сейчас. Данные получаю из другой книги макросом (ниже). Данные с листа "BIGDATA" из книги "_Учет_затрат.xlsm" переносятся в таблицу в моей рабочей книге, в ней же находятся и сводные таблицы, которые формируются из полученных данных.
Как изменить этот макрос, чтобы данные помещались в "умную" таблицу?
Вопрос мой следующий, я никогда не работал с макросами, связанными с "умными" таблицами. Но сейчас возникла необходимость создать сводную с постоянно обновляемым источником данных (меняется количество строк). Таким источником вижу "умную" таблицу. Иначе постоянно приходится обновлять через "источник данных" для корректировки количества строк.
Как работает сейчас. Данные получаю из другой книги макросом (ниже). Данные с листа "BIGDATA" из книги "_Учет_затрат.xlsm" переносятся в таблицу в моей рабочей книге, в ней же находятся и сводные таблицы, которые формируются из полученных данных.
Код |
---|
Option Explicit Dim aRez Sub MoveData() Dim fPath As String, nRw& fPath = ThisWorkbook.Path If Right(fPath, 1) <> "\" Then fPath = fPath & "\[_Учет_затрат.xlsm]" Else _ fPath = fPath & "[_Учет_затрат.xlsm]" Range("A1").Formula = "=COUNTA('" & fPath & "BIGDATA'!A:A)" nRw = Range("A1").Value Range("A1").Formula = "=ToArray('" & fPath & "BIGDATA'!A1:M" & nRw & ")" Range("B1").Resize(UBound(aRez), UBound(aRez, 2)).Value = aRez Range("A1").Clear If IsArray(aRez) Then Erase aRez ActiveWorkbook.Save MsgBox "Данные обновлены", vbOKOnly, "Успешное обновление" End Sub Private Function ToArray(ref) aRez = ref End Function |
Как изменить этот макрос, чтобы данные помещались в "умную" таблицу?
если вас незаслуженно обидели, вернитесь и заслужите