Всё облазил, и нейронки пытал, но не могу понять, можно ли так сделать(( есть столбец A и B, мне нужно, чтобы при изменении данных в ячейке B1 старое значение переносилось в ячейку A1 например: а1 - 10 b1 - 10 при изменение в ячейке b1 на 15 становится: а1 - 10 b1 - 15 при изменение в ячейке b1 на 7 становится: а1 - 15 b1 - 7
И тд((
Всем привет, профессионалы!))
Всё облазил, и нейронки пытал, но не могу понять, можно ли так сделать(( есть столбец A и B, мне нужно, чтобы при изменении данных в ячейке B1 старое значение переносилось в ячейку A1 например: а1 - 10 b1 - 10 при изменение в ячейке b1 на 15 становится: а1 - 10 b1 - 15 при изменение в ячейке b1 на 7 становится: а1 - 15 b1 - 7
Public a Private Sub Workbook_Open() a = Selection.Value End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) a = Target.Value End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Range("b:b")) Is Nothing Then b = Target.Value If a <> b Then Target.Offset(0, -1) = a End If End Sub
[/vba]
в модуль книги [vba]
Код
Public a Private Sub Workbook_Open() a = Selection.Value End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) a = Target.Value End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Range("b:b")) Is Nothing Then b = Target.Value If a <> b Then Target.Offset(0, -1) = a End If End Sub
моя вина, не указал сразу, что делаю это в гугл документах(
попробовал адаптировать под него, таким образом:
var b;
function onOpen() { b = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().getValue(); }
function onSelectionChange(e) { var sheet = e.source.getActiveSheet(); if (sheet.getSheetName() === 'Лист 19') { b = e.range.getValue(); } }
function onEdit(e) { var sheet = e.source.getActiveSheet(); if (sheet.getSheetName() === 'Лист 19') { var range = e.range; if (range.getColumn() == 2) { var c = range.getValue(); if (b !== c) { range.offset(0, -1).setValue(b); } } } }
но ничего не работает( явно я косячу(((
моя вина, не указал сразу, что делаю это в гугл документах(
попробовал адаптировать под него, таким образом:
var b;
function onOpen() { b = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().getValue(); }
function onSelectionChange(e) { var sheet = e.source.getActiveSheet(); if (sheet.getSheetName() === 'Лист 19') { b = e.range.getValue(); } }
function onEdit(e) { var sheet = e.source.getActiveSheet(); if (sheet.getSheetName() === 'Лист 19') { var range = e.range; if (range.getColumn() == 2) { var c = range.getValue(); if (b !== c) { range.offset(0, -1).setValue(b); } } } }