3 min readfrom Microsoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community

Xlookup reference is shifting over each time after I use Macro

Our take

Are you experiencing issues with your XLOOKUP references shifting unexpectedly after running a macro? It can be frustrating when your formulas do not reflect the intended ranges. In your scenario, the XLOOKUP formula on Sheet 1 changes from referencing H15 to F15, likely due to alterations made by the macro on Sheet 2. Understanding how your macro interacts with the data structure is crucial. Let's explore potential reasons for this behavior and how to ensure your formulas maintain accuracy throughout your data management process.

Hey everyone,
I have my main table where I want to display the cleaned up data.
Essentially I'm using xlookup references from sheet two.

When I run my macro in sheet two, for some reason my xlookup on sheet 1 moves over every single time.

For example... this is what the xlookup formula looks at before vs after the Macro
Before Macro - =XLOOKUP(A3,MTD!$A$3:$A$15,MTD!$B$3:$H$15)

After Macro - =XLOOKUP(A3,MTD!$A$3:$A$15,MTD!$B$3:$F$15)

Why would it move from H15 to F15? I'm a little lost why that would be.

Sub Macro5()

'

' Macro5 Macro

'

'

Range("A2").Select

ActiveCell.FormulaR1C1 = "Market"

Range("B2").Select

ActiveCell.FormulaR1C1 = "Date"

Range("E2:J16").Select

Selection.Cut

Range("C2").Select

ActiveSheet.Paste

Range("A2:H2").Select

Selection.Copy

Range("A19").Select

ActiveSheet.Paste

Windows("Overview Bullet-MTD.csv").Activate

Application.Left = 1551.25

Application.Top = 147.25

Windows("Weekly Exec Updates - Lead Pacing (Working File) (1).xlsx").Activate

Range("A20").Select

Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = "MO"

Range("A21").Select

ActiveCell.FormulaR1C1 = "LA"

Range("A22").Select

ActiveCell.FormulaR1C1 = "AR"

Range("A23").Select

ActiveCell.FormulaR1C1 = "MS"

Range("B20").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-17]C[-1]:R[-4]C[-1],R[-17]C:R[-4]C[6])"

Range("B20").Select

Selection.AutoFill Destination:=Range("B20:B23"), Type:=xlFillDefault

Range("B20:B23").Select

Range("B21").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-18]C[-1]:R[-5]C[-1],R[-18]C:R[-5]C[6])"

Range("B22").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-19]C[-1]:R[-6]C[-1],R[-19]C:R[-6]C[6])"

Range("B23").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-20]C[-1]:R[-7]C[-1],R[-20]C:R[-7]C[6])"

Range("B3:B16").Select

Selection.NumberFormat = "m/d/yyyy"

Range("E3:E16").Select

Selection.NumberFormat = "0.0%"

Selection.NumberFormat = "0%"

Range("G3:G16").Select

Selection.NumberFormat = "0.0%"

Selection.NumberFormat = "0%"

Range("C20:D23").Select

Selection.NumberFormat = "#,##0"

Range("F20:F23").Select

Selection.NumberFormat = "#,##0"

Range("G20:G23").Select

Selection.Style = "Percent"

Sheets("YTD").Select

Windows("Overview Bullet-YTD.csv").Activate

Windows("Weekly Exec Updates - Lead Pacing (Working File) (1).xlsx").Activate

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 4

Range("M2:M16").Select

Selection.Cut

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 1

Range("D2").Select

ActiveSheet.Paste

Range("D2").Select

ActiveCell.FormulaR1C1 = "Actual Leads"

Range("K2:K16").Select

Selection.Cut

Range("E2").Select

ActiveSheet.Paste

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 4

Range("L2:L16").Select

Selection.Cut

Range("F2").Select

ActiveSheet.Paste

Range("H2:H16").Select

Selection.Cut

Range("G2").Select

ActiveSheet.Paste

Range("I2:V17").Select

Selection.ClearContents

ActiveWindow.ScrollColumn = 7

ActiveWindow.ScrollColumn = 6

ActiveWindow.ScrollColumn = 5

ActiveWindow.ScrollColumn = 4

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 1

Range("A2:G2").Select

Selection.Copy

Range("A22").Select

ActiveSheet.Paste

Range("A23").Select

Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = "MO"

Range("A24").Select

ActiveCell.FormulaR1C1 = "LA"

Range("A25").Select

ActiveCell.FormulaR1C1 = "AR"

Range("A26").Select

ActiveCell.FormulaR1C1 = "MS"

Range("B23").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-20]C[-1]:R[-7]C[-1],R[-20]C:R[-7]C[5])"

Range("B23").Select

Selection.AutoFill Destination:=Range("B23:B26"), Type:=xlFillDefault

Range("B23:B26").Select

Range("B24").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-21]C[-1]:R[-8]C[-1],R[-21]C:R[-8]C[5])"

Range("B25").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-20]C[-1]:R[-7]C[-1],R[-20]C:R[-7]C[5])"

Range("B25").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-22]C[-1]:R[-9]C[-1],R[-22]C:R[-9]C[5])"

Range("B26").Select

ActiveCell.Formula2R1C1 = _

"=XLOOKUP(RC[-1],R[-23]C[-1]:R[-10]C[-1],R[-23]C:R[-10]C[5])"

Range("A2:G16").Select

Selection.AutoFilter

ActiveSheet.Range("$A$2:$G$16").AutoFilter Field:=1, Criteria1:=Array("AL", _

"CA", "HI", "NM", "NNE", "OHWVKY", "PA", "TW", "TX"), Operator:=xlFilterValues

Range("A3").Select

ActiveWorkbook.Worksheets("YTD").AutoFilter.Sort.SortFields.Clear

ActiveWorkbook.Worksheets("YTD").AutoFilter.Sort.SortFields.Add2 Key:=Range( _

"A2:A16"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("YTD").AutoFilter.Sort

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Sheets("MTD").Select

Range("A2:H16").Select

Selection.AutoFilter

Range("A3").Select

ActiveSheet.Range("$A$2:$H$16").AutoFilter Field:=1, Criteria1:=Array("AL", _

"CA", "HI", "NM", "NNE", "OHWVKY", "PA", "TW", "TX"), Operator:=xlFilterValues

ActiveWorkbook.Worksheets("MTD").AutoFilter.Sort.SortFields.Clear

ActiveWorkbook.Worksheets("MTD").AutoFilter.Sort.SortFields.Add2 Key:=Range( _

"A2:A16"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("MTD").AutoFilter.Sort

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End Sub

submitted by /u/_mavricks
[link] [comments]

Read on the original site

Open the publisher's page for the full experience

View original article

Related Articles

Tagged with

#no-code spreadsheet solutions#Excel alternatives for data analysis#financial modeling with spreadsheets#generative AI for data analysis#real-time data collaboration#natural language processing for spreadsheets#google sheets#rows.com#real-time collaboration#AI formula generation techniques#big data management in spreadsheets#conversational data analysis#Excel compatibility#intelligent data visualization#data visualization tools#formula generator#enterprise data management#big data performance#Excel alternatives#data analysis tools