Записване на всяко изчисление в Excel

1 одобрение 0 неодобрения
попитан 2018 октомври 4 в VBA от dsp555 начинаещ (13 точки)

Да си представим, че в Sheet1 има данни в 4 клетки в последователни колони, а в 5-тата колона  има формула. Искам в Sheet2 да се прави нещо като история на oперациите(всеки правен опит за изчисление) в Sheet1. Това, което ме препъва е, че не мога да се сетя за начин при всяко изпълнение на макроса 5-те клетки с нови данни да се записва на нов ред в Sheet2. Моля ви за помощ! 

1 отговор

1 одобрение 0 неодобрения
отговорени 2018 октомври 15 от vbafreak експерт (203 точки)

Здравей,

Закъснял отговор, но нещо такова би трябвало да ти свърши работа:

Sub Worksheet_Change(ByVal Target As Range)
    Dim LastRow As Integer
    Dim LastColumn As Integer
    'Find the last row's number
    LastRow = Worksheets("Sheet2").Cells(ActiveSheet.Rows.Count, "A").End(xlUp).row
    MsgBox (LastRow)
    'Set last column's number
    LastColumn = 5 'Column E
    'Counter
    Dim i As Integer
    i = 1
    Sheets("Sheet1").Select
    'Check if there is a change in Range A1:D1
    If Not Intersect(Target, Target.Worksheet.Range("A1:D1")) Is Nothing Then
        'Loop Through the columns
        For i = 1 To LastColumn
            'Copy data from Sheet1 to the next empty row in Sheet2
            Worksheets("Sheet2").Cells(LastRow + 1, i).Value = Worksheets("Sheet1").Cells(1, i).Value
        Next
    End If
End Sub

Макрото запаметява всеки направен опит за изчисление / всяка операция на нов ред.

За да работи кода трябва да го сложиш не в модул, а в Sheet1 на VBA едитора, също така трябва шийтовете да са със съответните имена.

 

 

Добре дошли в българския форум за Ексел и Майкрософт офис! Тук можете да питате хора със знания и опит, както и да споделите знанията и опита си с другите.
...