При подготовке отчета, при копировании Сводной таблицы в Word со связью столкнулся с проблемой. При обычном выделении диапазона охватывающего всю таблицу копируется и вставляется не Сводная таблица, а выделенный диапазон. При изменении Сводной таблицы - диапазон полностью не переносится. Для динамических (умных) таблиц задача легко решается созданием именованного диапазона из умной таблицы и указании этого имени в связи в файле Word . Тоже со сводной не проходит?. Попробовал функцию ДВССЫЛ() для замены имени Сводной таблицы на ссылку - тоже не получается. Попробовал создать именованный динамический диапазон с использованием подсчета заполненных ячеек в том числе с учетом пустых
В WORD указал {LINK Excel.sheet.12 C:\\User\\Fulidi\\OneDrive\\Desktop\\данные.xlsx Отчет!Свод \a \f 5\h \* MERGEFORMAT} Также пробовал функцию СМЕЩ() . В какой-то момент что-то получилось и тут же потерялось.... Опять неудача. Вообщем получается надо с помощью формулы научиться определять высоту и ширину сводной таблицы и создать именованный диапазон с помощью этой формулы. Поэтому у меня вопрос! Как скопировать Сводную таблицу Excel в Word со связью. Чтобы при изменении сводной таблицы, в таблицу в Word передавались данные и ее структура не нарушалась? Форматирование не обязательно.
Уважаемые Форумчане! Суть вопроса такая. Имеется план счетов - таблица со счетами с которой строится дерево. Имеется журнал проводок (записей) по счетам. Нужно чтобы по выбранным на дереве счетам фильтровались строки в журнале. Счета могут быть в двух столбцах по Д (дебету) и К (кредиту). Или хотя бы по одному из них. Но выбрать надо несколько (выбранное число может изменятся в зависимости от необходимости). Счет я взял в цифровом буквенном виде
вот код который должен бы это делать
Код
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Static s As String
Static k As Integer
'On Error Resume Next
Dim el As Node, ile%: ile = 0
For Each el In TreeView1.Nodes
If el.Checked = True Then ile = ile + 1
Next
Dim strNod As String
strNod = Node.Text
'выделяю номер счета
strNod = Left(strNod, InStr(1, Node.Text, " - ", 1))
s = s + strNod
k = k + 1
'strNod = Right(Node.Text, 1, Len(Node.Text) - 1)
Dim nds() As String
ReDim Preserve nds(k)
If k = 1 Then
Worksheets("выгрузка 1С").Activate
ActiveSheet.Range("a1:E1").AutoFilter Field:=4
' s = Left(s, Len(s) - 1)
'в выгрузке свой формат '01 - с кавычкой
s = "'" & s
nds = Split(s)
End If
ActiveSheet.Range("a1:h1").AutoFilter Field:=4, Criteria1:=Array(nds), Operator:=xlFilterValues
'ActiveSheet.Range("a1:h1").AutoFilter Field:=4, Criteria1:=.Keys
End Sub
Не могу разобраться с функцией Array - как я понял массив который она заполняет должен быть объявлен как Variant. А чтобы из строки получить массив - то массив - должен быть строковым. Может ли функция Array применяться к массиву переменного размера.