Не могу сообразить как скопировать в массив только определенные столбцы с листа. Например, мне из файла "выгрузка1_тест" нужно скопировать в массив только столбцы ИНН и Организация. При этом, если в файле нет одного из столбцов, нужно выдать ошибку. Как работает: 1. открываем файл "выборка_t" заходим в редактор и запускаем форму f_index 2. в поле организация выбираем файл "выгрузка1_тест" вся обработка происходит в модуле "obrabotka"
вот код, где ищу номера столбцов в файле "выгрузка1_тест":
Код
s = 1
For j = 1 To UBound(n_org)
For i = 1 To lLastColOrg
If ar_org_t(1, i) = n_org(j) Then
n_org_i(s) = i
s = s + 1
End If
Next
Next
nn = UBound(n_org_i)
ar_org_t(1, i) - массив с название шапки из файла выгрузка1_тест n_org(j) - это массив с названием нужных столбцов
И мне как-то надо определить все ли элементы массива n_org(j) нашлись в массиве ar_org_t(1, i)
Юрий М, может при копировании как-то скопировать только те столбцы которые участвуют в расчете. Что-то типа:
Код
ar = Range(Cells(1, 1), Cells(1, ILastColOrg)).Value 'копируем шапку с названием строк
'находим первый нужный столбец
For i to ILastColOrg
if ar(1,i)="Название нужного столбца"
n1=i 'запомнили номер
End IF
Next
For i to ILastColOrg
if ar(1,i)="Название нужного столбца2"
n21=i 'запомнили номер
End IF
Next
'и потом раз 15 скопировать нужные данные
ar = Range(Cells(1, 1), Cells(n1, ILastColOrg)).Value
ar = Range(Cells(1, 1), Cells(n2, ILastColOrg)).Value
Больше в голову ничего не приходит.. Будет страшненько, но без ошибок
vikttur, я уже тоже думала.. Но из-за того, что мне нужно обрабатывать весь массив по определенным условиям и выводить только "отсортированные" данные, я передумала.
Доброго времени суток! Подскажите быстрый способ копирования диапазона в массив. Я всегда использовала: Dim ar As Variant ar = Range(Cells(1,1), Cells(1000, 10)) Но сегодня столкнулась с проблемой, большой диапазон (строк 560к, столбцов 90к) нельзя скопировать таким образок, выдает ошибку - приложила. При ограничении размера массива, всё работает хорошо... Заранее спасибо
ikki, да у меня перебирает ячейки и копирует их.. Потом определяет сколько строк в первой таблицы и под ней создаёт вторую со звонками. Самый большой массив 560 тысяч Думала может кто -то решал подобные задачи
Доброго времени суток! Нужна помощь ваша помощь. Пользователь открывает книгу и в ячейку вводит название клиента. Внизу есть 3 таблицы: данные по клиенту, последние операции, последние звонки. Таблицы формируются после нажатия на кнопку "Поиск". Проблема в том, что на листах "Операции", "Звонки" и "Данные о клиентах" находятся большие массивы. Я не могу придумать как сделать так, чтобы всё не висло на 5 минут при поиске данных для каждого клиента. Во вложенном файле описала задачу. Заранее спасибо за ответы!
Я хочу исключить возможность когда выбираешь "Алтай", например, появляется список фио "Петрова, Собака, Тест2" - выбрал "Петрова". Потом выбираем Бийск, а во втором списке остается "Петрова". Только после того как нажмешь на список, появляются новые данные для города "Бийск".
Xapa6apga, при таком изменение первый список не работает
Когда выбирается город, список с ФИО обнуляется (чтобы исключить ошибку "По заданным критериям данных не найдено.") , а в таблице отфильтровываются данные по городу. Такое возможно? Спасибо
Оба варианта подходят! В вариант Xapa6apga при выборе в первом списке обнуляется второй - исключает ошибки. Юрий М, можно как сделать тоже самое в вашем варианте? И как добились исключение пустых строк из списка? Спасибо большое за ответ, очень благодарна!!
Добрый день! Пишу небольшой обработчик, который будет из большого массива формировать данные в удобной форме и столкнулась с проблемами: 1. Необходимо отсортировать (подтянуть) нужные данные в таблицу при выборе значения из списка (пример в файле, лист "пример1" ;) .
2. Как сформировать список без пустых строк. Я формирую связанные списке, но набор данных в списке с фио всегда разный (кол-во сотрудников будет меняться) и поэтому в качестве источника данных выбираю весь столбец. При таком способе в списке появляются лишние пустые строки. Думаю, с помощью VBA определять размер массива и присваивать имена?