Home » excel » excel – VBA, Overflow error, For each loop wont take variant

excel – VBA, Overflow error, For each loop wont take variant

Posted by: admin May 14, 2020 Leave a comment

Questions:

I tried to change my j variable from Range to Variant but I get the

overflow error

If I change to Integer or long I get a

compile error.

Dim j As Variant
Range("D83:D114").Select
With Application.WorksheetFunction
    For Each j In Intersect(Selection, ActiveSheet.UsedRange)
        j.Value = .Trim(j.Value)
    Next j
End With

How can I make my variable not have the overflow error? Is there a way to reset my memory?

Edit.

I made the adjustment recommended, removing selection from code and putting in the range.

Now the overflow is on my next for each loop. All these variables are used multiple times and stored as Range .

How can I not run into these issues?

For Each cellAFS In AFS.Cells
    For Each cellFV In FVOCI.Cells
        If cellFV.Value = cellAFS.Value Then
            cellFV.Offset(0, 6).Value = cellAFS.Offset(0, 3).Value / 1000
        End If
    Next
Next
How to&Answers:

your code works for me

you could avoid selections

Sub ChangeValue()
    Dim j As Range
    With Application.WorksheetFunction
        For Each j In Intersect(Range("D83:D114"), ActiveSheet.UsedRange)
            j.Value = .Trim(j.Value)
        Next j
    End With
End Sub

And to check for void intersection:

Sub ChangeValue()
    Dim rng As Range, j As Range
    Set rng = Intersect(Range("D83:D114"), ActiveSheet.UsedRange)
    If rng Is Nothing Then Exit Sub

    With Application.WorksheetFunction
        For Each j In rng
            j.Value = .Trim(j.Value)
        Next j
    End With
End Sub

Answer:

What about below Sub :

Sub ChangeValue()
    Dim j As Range
    For Each j In Range("D83:D114")
        j = Trim(j.Value)
    Next j
End Sub