Подскажите пожалуйста,что не так в коде. Нужно что бы макрос из одной книги открывал другие книги в определенной папке, затем собирал их в одну общую. причем данные в открываемых книгах могут как совпадать, так и различаться, добавлять нужно всех, но только 1 раз.
Итак, имеется фаил "5.xls", в который нужно свести два других файла "5.1.xls" и "5.2.xls".
Все таблицы идентичны о структуре.
Табельные номер уникальны, по ним и проверяется значение.
Проблема в том, что макрос просматривает оба, но данные выводить только из последнего.
Вот код:
Option Explicit Sub макрос1() Dim Book As Excel.Workbook Dim Sheet As Excel.Worksheet Dim sFolder As String Dim sFiles As String Dim RowNo As Integer Dim EmplyRow As Integer Dim ColumnNo As String Dim RegNumPos As Integer Dim RegNum As String sFolder = "пример\5\" sFiles = Dir(sFolder & "*.xls") Do While sFiles <> "" Set Book = Excel.Workbooks.Open(sFolder & sFiles) Set Sheet = Book.Sheets(1) EmplyRow = 5 RowNo = 5 While Sheet.Cells(RowNo, 2) <> "" RegNumPos = GetRegNumPos(Sheet.Cells(RowNo, 2)) If RegNumPos = 0 Then Лист1.Cells(EmplyRow, 2) = Sheet.Cells(RowNo, 2) Лист1.Cells(EmplyRow, 3) = Sheet.Cells(RowNo, 3) Лист1.Cells(EmplyRow, 4) = Sheet.Cells(RowNo, 4) Лист1.Cells(EmplyRow, 5) = Sheet.Cells(RowNo, 5) EmplyRow = EmplyRow + 1 End If RowNo = RowNo + 1 Wend sFiles = Dir Book.Close Loop End Sub Function GetRegNumPos(RegNum As String) As Integer Dim RowNo As Integer GetRegNumPos = 0 RowNo = 5 Do Until Лист1.Cells(RowNo, 2) = "" If Лист1.Cells(RowNo, 2) = RegNum Then GetRegNumPos = RowNo Exit Do End If RowNo = RowNo + 1 Loop End Function