Значение ячейки таблицы Excel или Google создается в другой ячейке

У меня есть требование в таблице Excel / Google, где, если я ввожу текст в A1 в первый раз, значение должно автоматически заполняться в B1, а если я редактирую A1, то обновленное значение должно автоматически заполняться в B2 и следующее обновление A1 должно быть автоматически заполнено B3, и так далее .. без удаления уже созданных значений столбца B.

Собственно хочу настроить БД для APPSHEET.


person Raghuveer    schedule 13.07.2020    source источник
comment
Предоставьте образцы функций или других действий, которые вы пробовали.   -  person iAmOren    schedule 13.07.2020


Ответы (2)


Для Excel

Поместите следующий макрос события в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A1 As Range, N As Long, B1 As Range
    Set A1 = Range("A1")
    Set B1 = Range("B1")
    
    If Intersect(Target, A1) Is Nothing Then Exit Sub
    Application.EnableEvents = False
        If B1.Value = "" Then
            B1.Value = A1.Value
        Else
            N = Cells(Rows.Count, "B").End(xlUp).Row + 1
            Cells(N, "B").Value = A1.Value
        End If
    Application.EnableEvents = True
End Sub

Код поддерживает ведение журнала изменений, внесенных в ячейку A1.

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите Просмотреть код - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо сомнения, сначала попробуйте его на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более позднюю, чем 2003, вы должны сохранить файл как .xlsm, а не .xlsx.

Чтобы удалить макрос:

  1. откройте окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, см .:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код рабочего листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Чтобы это работало, должны быть включены макросы!

person Gary's Student    schedule 13.07.2020

Я просто пробовал ниже и, похоже, тоже работает:

    function onEdit(evt){
      
    var a1Value = SpreadsheetApp.getActive().getSheetByName('forum').getRange('A1').getValue();
    
      for(var i =1;i<11;i++){
        var b1Obj = SpreadsheetApp.getActive().getSheetByName('forum').getRange('B'+i);    
        if(b1Obj.getValue() == ''){
          b1Obj.setValue(a1Value);
          SpreadsheetApp.getActive().getSheetByName('forum').getRange('A1').setValue('');
          break;
        }
      }
    
    }
person Raghuveer    schedule 13.07.2020