Cześć, mam problem z dostępem do zmiennych globalnych. W module mam zadeklarowane 3 zmienne globalne, a w Sheet przypisuje im wartości i o ile dla ChangedCell wszystko działą ok o tyle dla 2 pozostałych mam error '1004' Application-definied or object-defined error.
PreviousValue i SelectedRow przekazują do zmiennych wiersz i wartość komórki w chwili jej zaznaczenia. ChangedCell przekazuje do zmiennej wartość komórki w której doszło do zmiany wartości. W debuggerze widzę, że wartości są dostępne w module ale jakby nie mogę z nich skorzystać.
Module:
Option Explicit
Public ChangedCell As String
Public SelectedRow As Integer
Public PreviousValue As String
Sub AddToLog()
Dim LogRow As Long
With ActiveSheet
LogRow = Sheet5.Range("A99999").End(xlUp).Row + 1 'First Available Log Row
Sheet5.Range("C" & LogRow).Value = .Range(SelectedRow).Value 'Row Line
Sheet5.Range("D" & LogRow).Value = .Range(PreviousValue).Value 'Previous Value
Sheet5.Range("E" & LogRow).Value = .Range(ChangedCell).Value 'Updated Value
Sheet5.Range("F" & LogRow).Value = .Range("D" & .Range(SelectedRow).Value).Value 'LSP
Sheet5.Range("H" & LogRow).Value = .Range(((Split(ChangedCell, "$")(1)) & "4")).Value
End With
End Sub
Sheet:
Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5:J2000")) Is Nothing Then
If Target.Count > 1 Then
End
End If
If ActiveSheet.Name = "NI HWSD GDC NL OB" Then
ChangedCell = Target.Address
AddToLog
End If
End If
End Sub
Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A5:J2000")) Is Nothing Then
PreviousValue = Target.Value
SelectedRow = Target.Row
End If
End Sub