Jul 01 2020 09:56 AM
Hi There.
I made a macro which polishes some data I regularly import from the Web. However, its is hard-coded to select rows till 894. I wish to make it flexible, such that any entry which is the last in that data gets selected and all the data gets converted to a table. I have attached a picture of the part of Macro where 894 figure comes up. I am not able to make it flexible though.
Kindly help.
Thanks.
Jul 01 2020 11:23 AM - edited Jul 01 2020 11:23 AM
It's hard to tell unless we see what's the layout of your data. Is there any blank row or column in between the data set?
Select the cell A1 and press Ctrl+* and if it selects all the desired data then you can use CurrentRegion Property like this instead of hard coding the range.
Range("A1").CurrentRegion
Jul 01 2020 01:18 PM - edited Jul 01 2020 01:22 PM
Solution
Try identifying the last row by adding the following code (the example uses column A for finding last row but use a column which you know will always be populated in your data):
Dim Lrow As Long
With ActiveSheet
Lrow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Then you can address the range dynamically using:
Range("$A$1:$G$" & Lrow)
Jul 01 2020 09:27 PM
Thnku so much. This worked like a charm.
Jul 01 2020 09:28 PM
Jul 01 2020 01:18 PM - edited Jul 01 2020 01:22 PM
Solution
Try identifying the last row by adding the following code (the example uses column A for finding last row but use a column which you know will always be populated in your data):
Dim Lrow As Long
With ActiveSheet
Lrow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Then you can address the range dynamically using:
Range("$A$1:$G$" & Lrow)