Так нужно? Макросы должны быть включены. Сразу скажу, что без макросов только с итеративными вычислениями, а это та еще засада. [vba]
Код
Dim n_ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then Application.EnableEvents = 0 On Error Resume Next Target = WorksheetFunction.Sum(n_, Target) If Err.Number <> 0 Then Target = n_ On Error GoTo 0 n_ = Target Target.Select Application.EnableEvents = 1 End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then n_ = Target End Sub
[/vba]
Так нужно? Макросы должны быть включены. Сразу скажу, что без макросов только с итеративными вычислениями, а это та еще засада. [vba]
Код
Dim n_ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then Application.EnableEvents = 0 On Error Resume Next Target = WorksheetFunction.Sum(n_, Target) If Err.Number <> 0 Then Target = n_ On Error GoTo 0 n_ = Target Target.Select Application.EnableEvents = 1 End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then n_ = Target End Sub
Не уверен что это самый оптимальный путь, но рабочий Это помещаем в модуль листа [vba]
Код
Dim i Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False i = Selection.Value Application.EnableEvents = True End If End If End With End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False s = Range("A1").Value Range("A1").Value = Range("A1").Value + i [a1].Select i = Selection.Value Application.EnableEvents = True End If End If End With End Sub
[/vba]
up: упс, _Boroda_ опередил. Путь тот же, но код короче)))
Не уверен что это самый оптимальный путь, но рабочий Это помещаем в модуль листа [vba]
Код
Dim i Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False i = Selection.Value Application.EnableEvents = True End If End If End With End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False s = Range("A1").Value Range("A1").Value = Range("A1").Value + i [a1].Select i = Selection.Value Application.EnableEvents = True End If End If End With End Sub
[/vba]
up: упс, _Boroda_ опередил. Путь тот же, но код короче)))DJ_Marker_MC