The okk
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: Option Explicit Sub analiz_vyrobn_rentab() Const strMonth As String = "04" Dim lngData As Long, lngfnum As Long Const strPath As String = "\\hlibprom\fs\Documents\FAU\ANALYTICS\RENTABEL\2007\2007" Dim strFullPath As String, strT As String For lngData = 105 To 134 For lngfnum = 1 To 31 strT = Format$(CStr(lngfnum), "00") strFullPath = "='" & strPath & Month & "\Розсилка\[Рентабельність " & strT & "_" & strMonth & "_07.xls]ХЗ'!" Sheets("ВХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C4" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C4" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C4" Sheets("ЛХЗ №5").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C5" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C5" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C5" Sheets("ГХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C7" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C7" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C7" Sheets("БХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C8" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C8" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C8" Sheets("МП").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C9" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C9" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C9" Sheets("ЧГ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C10" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C10" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C10" Sheets("КХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C11" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C11" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C11" Sheets("СХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C12" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C12" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C12" Sheets("РХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C13" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C13" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C13" Sheets("ЖШ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C14" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C14" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C14" Sheets("КМХ").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C15" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C15" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C15" Sheets("ШП").Select Cells(data, 2).FormulaR1C1 = strFullPath & "R5C16" Cells(data, 3).FormulaR1C1 = strFullPath & "R34C16" Cells(data, 4).FormulaR1C1 = strFullPath & "R33C16" 'If lngfnum = 17 Then Exit Sub Next lngfnum Next lngdata End Sub | Упростил код. Если If fnum = 17 Then Exit Sub закомментарить, то цикл должен проходить нормально. О коде я этого сказать не могу. Во-первых, даже если убрать цикл по дате, будет работать убого, ибо в одну и ту же строку в каждом листе будут записываться одни и те же данные. Например, в строке data после первого выполнения цикла будут данные первого дня. После второго прохода они заменятся на данные второго дня и т.д. Несложно догадаться, что в итоге в строке останутся данные последнего дня. Если строк несколько, во всех будут данные последнего дня. Если привести номера листов в книге в соответствие с нумерацией столбцов, можно будет вообще запустить цикл For Each и код сократится значительно. Если я правильно понял задачу, в итоге нужно получить данные из файлов и записать их в каждый лист с тем расчетом, чтобы каждому дню соответствовала новая строка. Т.е. - первый день - строка 104 второй - строка 106 и т.д. Если это так, то код будет значительно проще и короче. | Всего записей: 327 | Зарегистр. 16-11-2006 | Отправлено: 08:53 23-04-2007 | Исправлено: The okk, 09:39 23-04-2007 |
|