VBA to insert rows

Akuini

Well-known Member
Joined
Feb 1, 2016
Messages
2,571
Office Version
365
Platform
Windows
That is the answer then, as my formulas were referencing cells outside of the table.

However for my own benefit I am trying to write a solution that will have the desired result with references to non-table cells.

It's an interesting case, let us know if you managed to get the answer.
 

Some videos you may like

Excel Facts

Square and cube roots
The =SQRT(25) is a square root. For a cube root, use =125^(1/3). For a fourth root, use =625^(1/4).

igold

Well-known Member
Joined
Jul 8, 2014
Messages
2,493
Office Version
365, 2010
Platform
Windows
As convoluted as it is, I believe this will add the rows to the table and not change relative references.

Code:
Sub InstTblRows()


    Dim tbl As ListObject
    Dim ct As Long, c As Long, trws As Long, r As Long
    Dim temtab1, temtab2
    Dim rng As Range, P As Range
    Dim fc As String
    
    Set tbl = ActiveSheet.ListObjects("medline")
    fc = tbl.DataBodyRange(1, 1).Address(0, 0)
    ct = ActiveSheet.Range("A1").Value + 1
    trws = tbl.ListRows.Count
    Set P = tbl.DataBodyRange
    temtab1 = P.Formula
    ReDim temtab2(1 To ct + trws, 1 To tbl.ListColumns.Count)
    
    For r = 1 To ct
        For c = 1 To tbl.ListColumns.Count
            temtab2(r, c) = temtab1(1, c)
        Next
    Next
    For r = ct + 1 To UBound(temtab2, 1) - 1
        For c = 1 To tbl.ListColumns.Count
            temtab2(r, c) = temtab1(r - ct + 1, c)
        Next
    Next
    
    tbl.Unlist
    Range(fc).Offset(-1, 0).Resize(UBound(temtab2, 1), UBound(temtab2, 2)).Select
    Range(fc).Resize(UBound(temtab2, 1) - 1, UBound(temtab2, 2)) = temtab2
    ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes).Name = "medline"
   
End Sub
 

mc136355

New Member
Joined
Mar 20, 2018
Messages
36
Hi Akuini both codes produce the same result which is what i need formulas are copied as expected. Thanks MC
 

Akuini

Well-known Member
Joined
Feb 1, 2016
Messages
2,571
Office Version
365
Platform
Windows
Hi Akuini both codes produce the same result which is what i need formulas are copied as expected. Thanks MC
You're welcome, glad to help, & thanks for the feedback.:)
But I think my last code is more reliable in most situation, so it's better to use that.
 

Watch MrExcel Video

Forum statistics

Threads
1,102,104
Messages
5,484,700
Members
407,464
Latest member
Halaseh

This Week's Hot Topics

  • Finding issue in If elseif else with For each Loop
    Finding issue in If elseif else with For each Loop I have tried this below code but i'm getting in Y column filled with W005. Colud you please...
  • MsgBox Error
    Hi Guys, I have the below error show up when i try and run my macro in File1 but works fine if i copy and paste the same code into file2. [ATTACH...
  • CELL FORMAT - IF CONDITION
    My Cell Format is [B]""0.00" Cr". [/B]But in the cell, it is showing 123.00 for editing. (123 is entry figure). (Data imported from other...
  • Show numbers nearly the same
    Is this possible. I have a number that can change very time eg 0.00001234 Then I have a lot of numbers 0.0000001, 0.0000002, 0.00000004...
  • Please i need your help to create formula
    I need a formula in cell B8 to do this >>if b1=1 then multiply ( cell b8) by 10% ,if b1=2 multiply by 20%,if=3 multiply by 30%. Thank you in...
  • Got error while adding column and filter
    Got error while adding column and filter In column Z has some like "Success" and "Error". I want to add column in AA if the Z cell value is...
Top