繁体   English   中英

如何在VBA中使用带有可变工作表名称的Vlookup

[英]How to use Vlookup inside VBA with a variable worksheet name

我需要在vba中使用vlookup,但是工作表名称会不断变化,但始终可以引用为ActiveWorkbook.Worksheet(1)和ActiveWorkbook.Worksheet(2)。 因此,我使用了dim,因此所有选择都可以引用ws1和ws2,但是当然在vlookup公式中,这种脚本不起作用。 希望任何人都可以帮助重写这些vlookup公式行。

它涉及ActiveCell.FormulaR1C1行的最后5行,在这里我需要针对“ ws2”的解决方案! 谢谢您的帮助。

Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = ActiveWorkbook.Worksheets(1)
Set ws2 = ActiveWorkbook.Worksheets(2)

ws1.Select
Selection.AutoFilter
Range("G2").Select
ActiveCell.FormulaR1C1 = "Web sales"
Range("H2").Select
ActiveCell.FormulaR1C1 = "Web stock"
Range("I2").Select
ActiveCell.FormulaR1C1 = "Total Sales"
Range("J2").Select
ActiveCell.FormulaR1C1 = "Total Stock"
Range("F2:F71").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=-102
Range("G2:J71").Select
ActiveWindow.SmallScroll Down:=-66
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
Columns("H:H").EntireColumn.AutoFit
Range("I5").Select
Application.CutCopyMode = False
Range("D3:D150").Select
ws2.Select
Range("D3:D150").Select
ws1.Select
ActiveWindow.SmallScroll Down:=-66
Range("G3").Select
ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-3],'ws2'!RC[-3]:R[42]C[-1],3,0)"
ActiveWindow.SmallScroll Down:=-30
ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-3],ws2!R3C4:R45C6,3,0)"

下面是原始代码中的两个示例,显示了如何在公式中包含工作表的名称:

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3]," & ws2.Name & "!RC[-3]:R[42]C[-1],3,0)"
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3]," & ws2.Name & "!R3C4:R45C6,3,0)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM