Страницы: 1
RSS
сбор данных из книг для расчета размеров незавершенного производства и потребности в материалах
 
Добрый день!  
есть:  
1 файл Цены, в котором по кодам все применяемые материалы с ценами  
2 файлы изделий, в которых по тем же кодам применямые при их изготовлении материалы с ценами из файла Цены (с помощью ВПР)  
3 файл план, в котором первый лист план в нем все изделия  
и в ручную ставятся количества планируемых к выпуску изделий  
лист мат со всеми материалами  
Задача собрать количества материалов под введенный план и суммы стоимости этих материалов  
оценка правильности выполнения макроса в ячейке Н1 файла план лист мат д/б ИСТИНА (т е суммы собранные из файлов изделий д/б равны сумме, посчитанной на листе мат)  
макрос написал  
его идея: открывать файлы изделий в случае ненулевого плана, записывать всю инфу в arrays и потом передать в книгу  
вроде все правильно  
но в самом начале выскакивает run time error 13  
самый главный вопрос: подход правильный?  
материалов около 1000  
изделий до 500  
Спасибо!
 
ошибка имхо тк:  
 
Dim izd() As Long  
....  
izd = Range(Cells(np, 2), Cells(lr, 2))  
где  
Cells(np, 2) = "изд1"  
Cells(lr, 2) = "изд14"  
 
ну то есть у массива - целочисленный тип,    
а присваивается текстовый Range.  
 
А насчет подхода хз, точно не смотрел еще, но обычно в таких случаях мы, економисты, обходимся без макросов, тк если что -  непонятно откуда ноги растут, да и дебажить макросы умеют мягко говоря не все. Воротите шахматки, мегатаблицы, формулы, но без макросов.
 
izd увидел спасибо  
но ошибка выскакивает на передаче range в mat  
шахматка и мега таблицы это клево, но весит тонну и тоже без литра (или больше) не разберешься
 
Ну при передаче range в mat та же фигня  
mat - целочисленный  
а range - текстовый  
такая же ошибка и с типом у переменной mati  
 
По сути все типы Long у вас на самом деле String.  
 
А таблицы у вас не такие и сложные, хотя данных много да, лимит столбцов 256, а у вас 500 изделий, но это обходится если изделия сгруппировать по какому то признаку и делать отдельный лист/файл для каждой группы.  
Прикладываю пример реализации через таблицы, без макросов.
 
{quote}{login=The_Prist}{date=04.08.2010 10:13}{thema=}{post}Dim mat() As Long  
должно быть  
Dim mat()  
 
mat = Worksheets("мат").Range(Cells(np, 2), Cells(lrm, 2))  
 
должно быть  
 
mat = Worksheets("мат").Range(Worksheets("мат").Cells(np, 2), Worksheets("мат").Cells(lrm, 2)).Value{/post}{/quote}  
Дмитрий спасибо!  
а как исправить эту ошибку:  
Workbooks(wb).Worksheets("план").Range(Cells(i, 2)).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True  
гиперссылка должна открываться в случае если план по этому изделию ненулевой  
74947
 
спасибо еще!  
осталось последнее  
Workbooks(wb).Worksheets("мат").Range(Cells(np, 5), Cells(lrm, 5)) = kol Workbooks(wb).Worksheets("мат").Range(Cells(np, 4), Cells(lrm, 4)) = tsei    
Workbooks(wb).Worksheets("план").Range(Cells(np, 4), Cells(lr, 4)) = sumi    
дает 1004 ошибку  
application defined or object defined error
 
{quote}{login=Sigal}{date=04.08.2010 10:16}{thema=}{post}Ну при передаче range в mat та же фигня  
mat - целочисленный  
а range - текстовый  
такая же ошибка и с типом у переменной mati  
 
По сути все типы Long у вас на самом деле String.  
 
А таблицы у вас не такие и сложные, хотя данных много да, лимит столбцов 256, а у вас 500 изделий, но это обходится если изделия сгруппировать по какому то признаку и делать отдельный лист/файл для каждой группы.  
Прикладываю пример реализации через таблицы, без макросов.{/post}{/quote}  
Sigal  
спасибо  
но с таблицами работать гораздо сложнее (не автору)  
а с макросами:  
обновлять список материалов и список изделий и нажимать одну кнопку
 
Дмитрий. Ты успел раньше отписаться  
туплю: это же аналогично посту Число сообщений: 7225  
04.08.2010, 10:54    
спасибо!!!  
все работает  
осталось дождаться декабря когда соизволят сделать файлы изделий
 
ага, ну смотрите сами, макросы так макросы.  
а что, с типами данных проблем нет?
 
я сделал проще. не указал тип вообще:  
dim fff(), и тд  
77515
Страницы: 1
Наверх