Доброго дня участников форума. Идея такова, реализация автоматизации процесса. Есть два файла, «База» и «СК». «База» файл, где собираются данные которые выданы в работу. Файл «СК» управляет контролем выполненной работы. Сканируется последовательно 3 штрих кода, номер сопроводительного листа, номер операции, и фамилию исполнителя, кол-во годных вбивается руками и наживается «Заполнить». Относительно кода операции, с помощью формул на странице, заполняются нужные столбцы в строке. Первые 5 строк у файлов одинаковые, это заголовки столбцов.
Требуется макрос, который смог бы добавить значения из строки «6» файла «СК» в строку в файле «База», так что бы номер ячейке А6 в «СК» совпадал бы с номером ячейка в столбце А в «База», и не заменял бы существующие значения в этой строке (файла «База»), а добавлял бы из столбцов (файла «СК»), где есть значения отличные от нуля.
Доброго дня участников форума. Идея такова, реализация автоматизации процесса. Есть два файла, «База» и «СК». «База» файл, где собираются данные которые выданы в работу. Файл «СК» управляет контролем выполненной работы. Сканируется последовательно 3 штрих кода, номер сопроводительного листа, номер операции, и фамилию исполнителя, кол-во годных вбивается руками и наживается «Заполнить». Относительно кода операции, с помощью формул на странице, заполняются нужные столбцы в строке. Первые 5 строк у файлов одинаковые, это заголовки столбцов.
Требуется макрос, который смог бы добавить значения из строки «6» файла «СК» в строку в файле «База», так что бы номер ячейке А6 в «СК» совпадал бы с номером ячейка в столбце А в «База», и не заменял бы существующие значения в этой строке (файла «База»), а добавлял бы из столбцов (файла «СК»), где есть значения отличные от нуля.HidDEnATH
Sub copyRow() Application.ScreenUpdating = False Dim wbBase As Workbook, shSK As Worksheet Dim lr&, lc&, j&, r Set shSK = ThisWorkbook.Sheets(1) Set wbBase = Workbooks.Open(ThisWorkbook.Path & "\" & "base.xlsb") lc = shSK.Cells(6, Columns.Count).End(xlToLeft).Column With wbBase.Sheets(1) Set r = .Columns(1).Find(What:=shSK.Cells(6, 1), LookAt:=xlWhole) If r Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Else lr = r.Row End If For j = 1 To lc If shSK.Cells(6, j) <> 0 And .Cells(lr, j) = "" Then .Cells(lr, j).Value = shSK.Cells(6, j).Value End If Next j End With wbBase.Close True End Sub
[/vba]
HidDEnATH, попробуйте так: [vba]
Код
Sub copyRow() Application.ScreenUpdating = False Dim wbBase As Workbook, shSK As Worksheet Dim lr&, lc&, j&, r Set shSK = ThisWorkbook.Sheets(1) Set wbBase = Workbooks.Open(ThisWorkbook.Path & "\" & "base.xlsb") lc = shSK.Cells(6, Columns.Count).End(xlToLeft).Column With wbBase.Sheets(1) Set r = .Columns(1).Find(What:=shSK.Cells(6, 1), LookAt:=xlWhole) If r Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Else lr = r.Row End If For j = 1 To lc If shSK.Cells(6, j) <> 0 And .Cells(lr, j) = "" Then .Cells(lr, j).Value = shSK.Cells(6, j).Value End If Next j End With wbBase.Close True End Sub