简体   繁体   English

在C2中将公式填充到B列的相应最后一行

[英]Fill formula in C2 to corresponding last row of the B column

I am working in a new project and new to VBA. 我正在从事一个新项目,也是VBA的新项目。 I have to fill formula to C2 to last row on the B column. 我必须将公式填充到C2到B列的最后一行。 my code as below 我的代码如下

LastRow = Range("A" & Rows.Count).End(xlUp).Row
Range("C2").Select
Range("C2:C" & LastRow).Formula = "=VLOOKUP(B2,'[Tracking Sheet Opens.xlsb]Data'!$B$1:$J$65530,9,0)"

This prompt me as error 1004 - method range or object global failed 这提示我为错误1004-方法范围或对象全局失败

Pls suggest me to way forward. 请建议我前进。

I am not sure from the PO if the searched range in the VLookup is in "Tracking" sheet in the same workbook, or it's in "Data" sheet in another workbook named "Tracking Sheet Opens" ,so my answer covers both scenarios. 我无法从PO中确定VLookup的搜索范围是在同一工作簿的“跟踪”表中,还是在另一工作簿“跟踪表已打开”的“数据”表中,因此我的回答涵盖了这两种情况。

Code

Option Explicit

Sub CopyVLookupFormulaDown()

Dim LastRow As Long

With Sheets("Sheet2")
    ' find last row with data in Column A in "Sheet2"
    'LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

    ' from post maybe need to look for last row in Column B
    LastRow = .Range("B" & .Rows.Count).End(xlUp).Row

    ' Option 1: check value of cell B2 in "sheet2" with the range
    ' in sheet "Data" in another workbook named "Tracking Sheet Opens"
    .Range("C2").Formula = "=VLOOKUP(B2,'[Tracking Sheet Opens.xlsb]Data'!$B$1:$J$65530,9,0)"


    ' Option 2: check value of cell B2 in "sheet2" with the range
    ' in sheet "Tracking" in the same workbook
    .Range("C2").Formula = "=VLOOKUP(B2,'Tracking'!$B$1:$J$65530,9,0)"

    ' same line for both options, copy formula down
    .Range("C2:C" & LastRow).FillDown

End With

End Sub

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

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