Есть база данных в экселе пронумерованных по порядку изделий, которую заполняют несколько пользователей по сети, и один вне сети, после того, как они выполнили работу. Изделия раздаются рандомно каждому пользователю. Для автономного пользователя сделал отдельный пользовательский файл, который успешно импортирует базу к себе, но вот с экспортом я застрял, так как нужно отправить данные в базу, только те, с которыми он работал, ориентируясь на индивидуальный номер изделия. Проблема в моем коде в том, что перед вставкой буфер обмена опустошается и на этом код останавливается.
[vba]
Код
Private Sub ExportB_Click() With Sheets("setting") itsbook = .Cells(15, 1) 'имя текущей книги пользовательского файла path = .Cells(13, 1) 'путь к книге с базой Namebook = .Cells(14, 1) 'имя книги с базой End With
On Error GoTo 5
Workbooks.Open path, ReadOnly:=False
Workbooks(itsbook).Activate With Sheets("Æóðíàë ÈÁ") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row For y = 5 To iLastRow If .Cells(y, 13) <> Empty And .Cells(y, 17) = Empty Then 'определение строки, которую нужно скопировать ak = .Cells(y, 1) 'определение индивидуального номера изделия Range(Sheets("Æóðíàë ÈÁ").Cells(y, 13), Sheets("Æóðíàë ÈÁ").Cells(y, 53)).Copy
Workbooks(Namebook).Activate With Sheets("Æóðíàë ÈÁ") If .FilterMode Then .ShowAllData iRow = .Range(.Cells(5, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Find(What:=Val(ak)).Row 'поиск номера строки в соответствии с индивидуальным номеров в базе
Sheets("Æóðíàë ÈÁ").Range(Sheets("Æóðíàë ÈÁ").Cells(iRow, 13), Sheets("Æóðíàë ÈÁ").Cells(iRow, 53)).PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'вставка данных в базу, отсюда не работает. End With End If Workbooks(itsbook).Activate
Next y End With Workbooks(Namebook).Activate Workbooks(Namebook).SaveAs Filename:=path Workbooks(Namebook).Close On Error GoTo 0
Workbooks(itsbook).Activate
5: End Sub
[/vba]
Есть база данных в экселе пронумерованных по порядку изделий, которую заполняют несколько пользователей по сети, и один вне сети, после того, как они выполнили работу. Изделия раздаются рандомно каждому пользователю. Для автономного пользователя сделал отдельный пользовательский файл, который успешно импортирует базу к себе, но вот с экспортом я застрял, так как нужно отправить данные в базу, только те, с которыми он работал, ориентируясь на индивидуальный номер изделия. Проблема в моем коде в том, что перед вставкой буфер обмена опустошается и на этом код останавливается.
[vba]
Код
Private Sub ExportB_Click() With Sheets("setting") itsbook = .Cells(15, 1) 'имя текущей книги пользовательского файла path = .Cells(13, 1) 'путь к книге с базой Namebook = .Cells(14, 1) 'имя книги с базой End With
On Error GoTo 5
Workbooks.Open path, ReadOnly:=False
Workbooks(itsbook).Activate With Sheets("Æóðíàë ÈÁ") iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row For y = 5 To iLastRow If .Cells(y, 13) <> Empty And .Cells(y, 17) = Empty Then 'определение строки, которую нужно скопировать ak = .Cells(y, 1) 'определение индивидуального номера изделия Range(Sheets("Æóðíàë ÈÁ").Cells(y, 13), Sheets("Æóðíàë ÈÁ").Cells(y, 53)).Copy
Workbooks(Namebook).Activate With Sheets("Æóðíàë ÈÁ") If .FilterMode Then .ShowAllData iRow = .Range(.Cells(5, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Find(What:=Val(ak)).Row 'поиск номера строки в соответствии с индивидуальным номеров в базе
Sheets("Æóðíàë ÈÁ").Range(Sheets("Æóðíàë ÈÁ").Cells(iRow, 13), Sheets("Æóðíàë ÈÁ").Cells(iRow, 53)).PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'вставка данных в базу, отсюда не работает. End With End If Workbooks(itsbook).Activate
Next y End With Workbooks(Namebook).Activate Workbooks(Namebook).SaveAs Filename:=path Workbooks(Namebook).Close On Error GoTo 0