Results 1 to 10 of 11

Thread: Handling string in an array of length greater then 255 in excel

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Administrator Admin's Avatar
    Join Date
    Mar 2011
    Posts
    1,123
    Rep Power
    10
    Hi,

    PFA.
    Attached Files Attached Files
    Cheers !

    Excel Range to BBCode Table
    Use Social Networking Tools If You Like the Answers !

    Message to Cross Posters

    @ Home - Office 2010/2013/2016 on Win 10 (64 bit); @ Work - Office 2016 on Win 10 (64 bit)

  2. #2
    Senior Member LalitPandey87's Avatar
    Join Date
    Sep 2011
    Posts
    222
    Rep Power
    15
    Quote Originally Posted by Admin View Post
    Hi,

    PFA.
    Hi Admin,

    There is an issuse when = comes at first then excel treat it as a formula and raise an error.
    I modified code and replaced = with '=.
    Here is the modified version:-

    Code:
    Sub kTest()
        
        Dim ka, k(), c() As String, i As Long
        Dim j As Long, n As Long, r As Range, s As String
        
        Application.ScreenUpdating = False
                
        Set r = Sheet1.Range("a1").CurrentRegion
        ka = r
        
        ReDim k(1 To UBound(ka, 1), 1 To UBound(ka, 2))
        
        For i = 1 To UBound(ka, 1)
            For j = 1 To UBound(ka, 2)
                If Len(ka(i, j)) > 255 Then
                    n = n + 1
                    ReDim Preserve c(1 To n)
                    c(n) = Cells(i, j).Address(0, 0)
                Else
                    If Left$(ka(i, j), 1) = Chr(61) Then
                        k(i, j) = Chr(39) & ka(i, j)
                    Else
                        k(i, j) = ka(i, j)
                    End If
                End If
            Next
        Next
        
        With Sheet2.Range("a1")
            .Parent.UsedRange.ClearContents
            .Resize(UBound(k, 1), UBound(k, 2)) = k
            If n Then
                For i = 1 To n
                    s = r.Range(c(i)).Value
                    If Left$(s, 1) = Chr(61) Then s = Chr(39) & s
                    .Range(c(i)) = s
                Next
            End If
        End With
        Application.ScreenUpdating = True
    End Sub

Similar Threads

  1. Replies: 2
    Last Post: 05-14-2013, 01:02 AM
  2. Replies: 1
    Last Post: 12-04-2012, 05:30 PM
  3. Concatenate array string
    By tushar.tarafdar in forum Excel Help
    Replies: 2
    Last Post: 09-20-2012, 12:00 PM
  4. Replies: 4
    Last Post: 04-07-2011, 07:09 AM
  5. Replies: 6
    Last Post: 04-03-2011, 09:46 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •