我记录了一个宏来计算每月产品的排名 - 我有Jan-YTD这些产品的月度销售数据 我记录了一个宏来按照desc顺序对销售进行排序,然后对它们进行排序,但是我需要将它们循环到所有月份,不断改变它可能是1月到2月,1月到5月或每当我需要这个报告时。 产品(行)的数量也可能会发生变化。
所以我需要录制一个动态vlookup的宏。
我到目前为止的代码只是Jan的月份排名 - 我不想单独运行每个月的宏,简而言之就是可以将宏循环运行整个月....也可以添加了新产品,vlookup还可以包含新产品吗? 请指教。
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!RC[-1]:R[6]C[4],2)"
Range("B3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!R3C1:R9C6,2)"
Range("B3").Select
Selection.Copy
Range("B4:B9").Select
ActiveSheet.Paste
Range("B2").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("B3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("C3").Select
ActiveCell.FormulaR1C1 = "1"
Range("C4").Select
ActiveCell.FormulaR1C1 = "2"
Range("C5").Select
ActiveCell.FormulaR1C1 = "3"
Range("C3:C5").Select
Selection.AutoFill Destination:=Range("C3:C9"), Type:=xlFillDefault
Range("C3:C9").Select
Sheets("Sheet3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!RC[-1]:R[6]C[1],3,0)"
Range("B3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!R3C1:R9C3,3,0)"
Range("B3").Select
Selection.Copy
Range("B4:B9").Select
ActiveSheet.Paste
如果需要任何进一步的信息,请告诉我。 TIA。
答案 0 :(得分:0)
首先,如果要在B列的每个单元格中复制公式
Range("B3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!R3C1:R9C6,2)"
lastRow = Cells(Application.Rows.Count, 2).End(xlUp).Row
Selection.AutoFill Destination:=Range("B:B" & lastRow)
你能解释一下你的工作簿/表的结构吗?