Вечер добрый. Помогите написать макрос. Есть два листа в одной книге "Данные" и "База". В первом листе заполняются данные в определенных ячейках, после чего, при нажатии кнопки, их нужно сохранить в Базу, но с учетом того, что если номер такой уже есть, то данные перезаписываются, если нет, то добавляются снизу. И наоборот, чтобы из Базы можно было восстановить данные обратно из Базы. Заранее спасибо.
Вечер добрый. Помогите написать макрос. Есть два листа в одной книге "Данные" и "База". В первом листе заполняются данные в определенных ячейках, после чего, при нажатии кнопки, их нужно сохранить в Базу, но с учетом того, что если номер такой уже есть, то данные перезаписываются, если нет, то добавляются снизу. И наоборот, чтобы из Базы можно было восстановить данные обратно из Базы. Заранее спасибо.Myxomop
Sub addData() Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long Set sh1 = ThisWorkbook.Sheets("Данные") Set sh2 = ThisWorkbook.Sheets("База") With sh2 Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole) If x Is Nothing Then r = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Else r = x.Row End If .Cells(r, 1) = sh1.Cells(3, 2) .Cells(r, 2) = sh1.Cells(5, 2) .Cells(r, 2).NumberFormat = "dd.mm.yyyy" .Cells(r, 3) = sh1.Cells(7, 2) .Cells(r, 4) = sh1.Cells(8, 2) .Cells(r, 5) = sh1.Cells(9, 2) End With End Sub Sub fromBase() Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long Set sh1 = ThisWorkbook.Sheets("Данные") Set sh2 = ThisWorkbook.Sheets("База") With sh2 Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole) If Not x Is Nothing Then r = x.Row sh1.Cells(3, 2) = .Cells(r, 1) sh1.Cells(5, 2) = .Cells(r, 2) sh1.Cells(7, 2) = .Cells(r, 3) sh1.Cells(8, 2) = .Cells(r, 4) sh1.Cells(9, 2) = .Cells(r, 5) Else MsgBox "Нет данных" 'Если нужно очистить ячейки sh1.Cells(3, 2).Resize(7) = "" End If End With End Sub
[/vba]
Myxomop, здравствуйте. Так пойдет? [vba]
Код
Sub addData() Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long Set sh1 = ThisWorkbook.Sheets("Данные") Set sh2 = ThisWorkbook.Sheets("База") With sh2 Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole) If x Is Nothing Then r = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Else r = x.Row End If .Cells(r, 1) = sh1.Cells(3, 2) .Cells(r, 2) = sh1.Cells(5, 2) .Cells(r, 2).NumberFormat = "dd.mm.yyyy" .Cells(r, 3) = sh1.Cells(7, 2) .Cells(r, 4) = sh1.Cells(8, 2) .Cells(r, 5) = sh1.Cells(9, 2) End With End Sub Sub fromBase() Dim x As Range, sh1 As Worksheet, sh2 As Worksheet, r As Long Set sh1 = ThisWorkbook.Sheets("Данные") Set sh2 = ThisWorkbook.Sheets("База") With sh2 Set x = .Columns(1).Find(sh1.Cells(3, 2), , , xlWhole) If Not x Is Nothing Then r = x.Row sh1.Cells(3, 2) = .Cells(r, 1) sh1.Cells(5, 2) = .Cells(r, 2) sh1.Cells(7, 2) = .Cells(r, 3) sh1.Cells(8, 2) = .Cells(r, 4) sh1.Cells(9, 2) = .Cells(r, 5) Else MsgBox "Нет данных" 'Если нужно очистить ячейки sh1.Cells(3, 2).Resize(7) = "" End If End With End Sub
Друзья, а как тот же самый VBA код, сделать в Java для гугл таблиц Нашел конвертер, вот ссылка( http://slingfive.com/pages/code/scriptConverter/demo.html ), работает только через IE браузер. Таким как я даже такое не помощник)))) Помогите, пожалуйста!
Друзья, а как тот же самый VBA код, сделать в Java для гугл таблиц Нашел конвертер, вот ссылка( http://slingfive.com/pages/code/scriptConverter/demo.html ), работает только через IE браузер. Таким как я даже такое не помощник)))) Помогите, пожалуйста!Макс323