Simplified Codes based on last Full Code using
Evaluate(“ “):
I just give some simplified forms here. The main linked code was “opened up” and explained extensively in previous Posts and in the ‘Comments in that Full Code.
Simplified With Loop for Transpose .... Evaluate(“ “)
_.........................Code:Function FuRSHg(ByVal rngIn As Range, FoutRw As Long) 370 Dim rwsS() As String: rwsS() = Strings$.Split(Replace(Strings$.Join(Evaluate("column(" & CL(rngIn.Row) & ":" & CL(rngIn.Row + (rngIn.Rows.Count - 1)) & ")"), " "), " " & FoutRw & "", "", 1, -1)) 390 Dim rwsT() As String: ReDim rwsT(0 To (UBound(rwsS())), 1 To 1) ' 400 Dim Cnt As Long: For Cnt = 0 To UBound(rwsS()): Let rwsT(Cnt, 1) = rwsS(Cnt): Next Cnt 480 FuRSHg = Application.Index(Cells, rwsT(), Evaluate("column(" & CL(rngIn.Column) & ":" & CL(rngIn.Column + (rngIn.Columns.Count - 1)) & ")")) ' End Function
Simplified With .Transpose ...... Evaluate(“ “)
_..............................................Code:Function FuRSHgDotT(rngIn As Range, FoutRw As Long) 550 FuRSHgDotT = Application.Index(Cells, Application.Transpose(Strings$.Split(Replace(Strings$.Join(Evaluate("column(" & CL(rngIn.Row) & ":" & CL(rngIn.Row + (rngIn.Rows.Count - 1)) & ")"), " "), " " & FoutRw & "", "", 1, -1))), Evaluate("column(" & CL(rngIn.Column) & ":" & CL(rngIn.Column + (rngIn.Columns.Count - 1)) & ")")) End Function
Here the Test Calling Code again:
_..............................................Code:Sub Alan() Dim sp() As Variant 'Dim DataArr() As Variant: Let DataArr() = Range("A1:E10").Value 'Let sp() = FuR_Alan(Range("A1:E10"), 5) Let sp() = FuRSHg(Range("A1:E10"), 5) Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)).ClearContents Let Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)) = sp() Let sp() = FuRSHgDotT(Range("A1:E10"), 5) Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)).ClearContents Let Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)) = sp() ' Let sp() = FuRSHgShtHd(Range("A1:E10"), 5) ' Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)).ClearContents ' Let Range("M17").Resize(UBound(sp(), 1), UBound(sp(), 2)) = sp() End Sub




Reply With Quote
Bookmarks