Hello, everyone!

I've just written a hefty piece of vba code and while it works like a charm it keeps crashing for no known by me reason. Since this is important to me and I am a complete newbie to vba I would like to ask for your help solving this problem.

The macro itself is basically a huge If/then/else cycle that checks what's the value in a cell and fills other cells, based on the value.

Since the code itself is more than 10000 characters long, I will write the last subroutine in the following post. There's a commented section I've left in on purpose, just in case.

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Not Intersect(Target, Range("D14")) Is Nothing Then
	Call References
End If

If Not Intersect(Target, Range("D16")) Is Nothing Then
	Call Multiclass
	Call References
End If

If Not Intersect(Target, Range("J11")) Is Nothing Then
	If Range("J11").Value > Range("J14").Value Then
		Range("D16").Value = Range("D16").Value + 1
		Call Multiclass
		Call References
	End If
End If

Application.EnableEvents = True

End Sub

Private Sub References()

Dim LevelRef As Range
Dim ClassRef As Range
Dim NextXP As Range
Dim SkillPoints As Range
Dim Hit As Range
Dim Parry As Range
Dim Dodge As Range
Dim Initiative As Range
Dim Damage As Range
Dim APR As Range
Dim Fort As Range
Dim Will As Range
Dim Ref As Range
Dim Title As Range

If Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B4").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C4")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 53 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B5").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C5")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 44 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B6").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C6")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 75 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B7").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C7")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 97 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B8").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C8")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 119 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B9").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C9")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 141 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B10").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C10")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 163 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B11").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C11")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 229 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B12").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C12")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 295 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B13").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C13")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 185 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B14").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C14")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 207 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B15").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C15")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 229 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B16").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C16")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 251 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B17").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C17")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 273 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B18").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C18")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 295 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B19").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C19")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 317 + LevelRef.Value)

'ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B20").Value Then
'LevelRef = Worksheets("Hidden Data Sheet").Range("C20")
'ClassRef = Worksheets("Hidden Data Sheet").Range("A" & 3 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B21").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C21")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 339 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B22").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C22")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 361 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B23").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C23")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 383 + LevelRef.Value)

ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B24").Value Then
	Set LevelRef = Worksheets("Hidden Data Sheet").Range("C24")
	Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 22 + LevelRef.Value)

End If

Set NextXP = ClassRef.OffSet(1, 1)
Set Title = ClassRef.OffSet(0, 2)
Set SkillPoints = ClassRef.OffSet(0, 3)
Set APR = ClassRef.OffSet(0, 4)
Set Fort = ClassRef.OffSet(0, 5)
Set Ref = ClassRef.OffSet(0, 6)
Set Will = ClassRef.OffSet(0, 7)
Set Hit = ClassRef.OffSet(0, 8)
Set Parry = ClassRef.OffSet(0, 9)
Set Dodge = ClassRef.OffSet(0, 10)
Set Initiative = ClassRef.OffSet(0, 11)
Set Damage = ClassRef.OffSet(0, 12)

Range("J14").Value = NextXP.Value
Range("B19").Value = Hit.Value
Range("C19").Value = Parry.Value
Range("D19").Value = Dodge.Value
Range("E19").Value = Initiative.Value
Range("F19").Value = Damage.Value
Range("G19").Value = APR.Value
Range("H19").Value = Fort.Value
Range("I19").Value = Will.Value
Range("J19").Value = Ref.Value
Range("D15").Value = Title.Value
Range("D16").Value = LevelRef.Value
Worksheets("Skills").Range("K17").Value = Worksheets("Skills").Range("K17").Value + SkillPoints.Value

End Sub