День добрый Имеется макрос, который я переодически добавляю Суть макроса, зайти открыть указанный файл, найти там указанные "Умные таблицы" и перенести в них данные по условиям
Задаю названия нужных таблиц через переменные по порядку
If Not [land_TM].ListObject.DataBodyRange Is Nothing Then [land_TM].ListObject.DataBodyRange.Delete
arrd8 = [land_TM].Resize(UBound(arr8))
cr = 1
For i = 1 To UBound(arr8)
If arr8(i, 1) = ThisWorkbook.Sheets("p-f KPI").Range("B2") And arr8(i, 4) = ThisWorkbook.Sheets("p-f KPI").Range("J1") Then
For j = 1 To 4
arrd8(cr, j) = arr8(i, j)
Next
cr = cr + 1
End If
Next
If cr > 1 Then [land_TM].Resize(cr - 1) = arrd8
Так вот пока у меня было 9 переменных, все работало корректно. А как ввел десятую, код начал спотыкаться, хотя модули сделаны по одинаковому принципу
вот на этой части выскакивает ошибка:
Код
If Not [land_TM_RS].ListObject.DataBodyRange Is Nothing Then [land_TM_RS].ListObject.DataBodyRange.Delete
arrd11 = [land_TM_RS].Resize(UBound(arr11))
cr = 1
For i = 1 To UBound(arr10)
If arr11(i, 1) = ThisWorkbook.Sheets("p-f KPI").Range("B2") Then
For j = 1 To 4
arrd11(cr, j) = arr10(i, j)
Next
cr = cr + 1
End If
Next
If cr > 1 Then [land_TM_RS].Resize(cr - 1) = arrd11
Скрины ошибок приложил. Единственное мое предположение, что есть какой-то лимит по количеству переменных. Помогите пожалуйста разобраться
убедитесь, что arr11 является массивом, а не единственным значением. Потому как если у Вас в [land_TM_RS] только одна ячейка - то arr11 будет присвоено всего одно значение, а не массив.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
убедитесь, что arr11 является массивом, а не единственным значением. Потому как если у Вас в [land_TM_RS] только одна ячейка - то arr11 будет присвоено всего одно значение, а не массив.
arr11 - это название "умной таблицы". Так у меня устроены все остальные arr с 1 по 9. 9 умных таблиц и в них заносятся данные по условиям. Один в один все по аналогии. И все нормально работало, пока не вставил arr11 Что именно надо посмотреть, что бы убедиться в массиве?
В общем заработало, но я так и не понял почему один из столбцов таблицы был полностью пустым. Я его удалил и все заработало ) В других таблицах тоже есть пустые столбцы (ну или почти пустые) и там никаких ошибок не выскакивало
Иван написал: один из столбцов таблицы был полностью пустым
Но в нем был заголовок,
Цитата
Дмитрий(The_Prist) Щербаков написал: Потому как если у Вас в [land_TM_RS] только одна ячейка - то arr11 будет присвоено всего одно значение, а не массив.
Спасибо за ответы. Теперь понял Еще дополнительный вопрос. Может поможете Суть моего макроса в том, что он находит нужную таблицу в файле по адресу, потом находит такую же таблицу в своем файле и переносит туда данные по условиям (условия, это указанные данные в ячейке) по сути, разносит отчет по менеджерам. В итоге каждый менеджер получает только те данные, которые к нему относятся (из общего массива данных) Вопрос следующий. Обязательное условие переноса, это то, что таблицы должны быть абсолютно одинаковы (с одинаковым количеством столбцов) А можно сделать так, что бы таблицы были разные? То есть в таблице исходнике, например 5 столбцов, а данные переносились только из определенных столбцов и таблица куда они загружаются например состояла только из двух столбцов?