Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / цикл записи данных в книгу Excel из других файлов / 3 сообщений из 3, страница 1 из 1
10.09.2015, 09:31
    #39047679
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
цикл записи данных в книгу Excel из других файлов
Здравствуйте. Есть набор файлов Excel одинаковой структуры ("Ведомости эффективности") и общий файл-отчет "Сводная ведомость", куда нужно собрать данные из всех ведомостей. Все файлы лежат в одной папке. Для решения этой задачи я создал кнопку в файле сводной ведомости с таким кодом:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
Sub CleanCells()
Dim lastrow, i As Integer
lastrow = ThisWorkbook.Sheets(1).UsedRange.Row + ThisWorkbook.Sheets(1).UsedRange.Rows.Count - 1
For i = 8 To lastrow
          ThisWorkbook.ActiveSheet.Cells(i, 5) = Null
          'ThisWorkbook.ActiveSheet.Cells(i, 7) = Null
     Next i
End Sub
Sub Ðàñ÷åò()
Dim FSO As Object
Dim lastrow, i As Integer
CleanCells
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Search FSO.GetFolder(ThisWorkbook.Path)
   lastrow = ThisWorkbook.Sheets(1).UsedRange.Row + ThisWorkbook.Sheets(1).UsedRange.Rows.Count - 1
   
   'For i = 8 To lastrow
   'If (ThisWorkbook.ActiveSheet.Cells(i, 2) > 0) And (IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 6))) Then
    '      ThisWorkbook.ActiveSheet.Cells(i, 6) = 1
     '     ThisWorkbook.ActiveSheet.Cells(i, 6).NumberFormat = "0.00%"
      '    ThisWorkbook.ActiveSheet.Cells(i, 7) = "Îöåíî÷íàÿ âåäîìîñòü îòñóòñòâóåò"
     'End If
     'Next i
End Sub


 Sub Search(Fold As Object)
' Dim Fil As Object
  Dim wb As Workbook
Dim Sh As Worksheet
Dim i, j, lastrow As Integer
Dim curSotr As String
Dim curMark As Double
   On Error GoTo ErrHandle
  ' i = 8
j = 8
'MsgBox CurDir
'lastrow = ThisWorkbook.Sheets(1).UsedRange.Row + ThisWorkbook.Sheets(1).UsedRange.Rows.Count - 1

   'For Each SubFold In Fold.SubFolders
    ' Search SubFold
   'Next SubFold
   For Each Fil In Fold.Files
     If InStr(1, Fil.Name, ".xlsx", vbTextCompare) > 0 Then
      Set wb = Workbooks.Open(Fil.Path)
 Set Sh = wb.Sheets(1)
          Sh.Select
          curSotr = Sh.Cells(4, 4)
          For j = 8 To 60
          If ThisWorkbook.Sheets(1).Cells(j, 4) = curSotr Then
          ThisWorkbook.Sheets(1).Cells(j, 5) = Sh.Range("K10").Value
          ThisWorkbook.Sheets(1).Cells(j, 5).NumberFormat = "0.00%"
     End If
     Next j
   '  i = i + 1
     wb.Close
     End If
   Next Fil
   Exit Sub
ErrHandle:
   MsgBox "Нет доступа""" & Fold.Path & """"
   Err.Clear
End Sub


в каждой ведомости в ячейке D4 указано подразделение организации, а в ячейке K10 оценка работы подразделения за месяц. В итоговой ведомости в 4-м столбце перечислены подразделения, а в 5-м напротив каждого подразделения должна выставляться оценка для подразделения из его ведомости. У меня почему то происходит следующее: файлы ведомостей открываются, но оценка пишется в 56-ю строчку и повторяется 5 раз, открывается новая ведомость и из неё оценка перезаписывается с 56-й строки 5 раз... и т.д. столько раз, сколько файлов ведомостей... не пойму никак, где я что неправильно сделал. Помогите пожалуйста. Пример ведомости и сводную с кодом прилагаю ниже в архиве. Формат файлов xlsx.
...
Рейтинг: 0 / 0
10.09.2015, 10:00
    #39047706
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
цикл записи данных в книгу Excel из других файлов
jediAlexв каждой ведомости в ячейке D4 указано подразделение организации ты в этом уверен?
...
Рейтинг: 0 / 0
10.09.2015, 10:37
    #39047765
jediAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
цикл записи данных в книгу Excel из других файлов
hclubmk, да, ошибся с адресом, уже увидел...аналогичные ведомости обрабатывал, где было D4 и спутал...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / цикл записи данных в книгу Excel из других файлов / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]