在我的新工作中给了我一个宏,以尝试改进。宏的工作是比较Sheet1与Sheet2上的数据,并删除数据(事务)相同的所有行。这将只保留出现在Sheet1上的事务,而不是出现在Sheet2上的事务。
宏在第I列中运行VLOOKUP以执行此任务。我的问题是数据集现在在第I列中包含了信息(以前没有用过)。如果第I列中有任何数据,则该宏将不会运行。这需要我将数据移到另一列上,这很乏味并且违反了宏的目的。
如何编辑VBA代码以成功在另一列(例如K列)中运行VLOOKUP?
我是VBA的新手,正在学习。我尝试用K列替换I列的所有实例。我发现代码中存在相对的单元格引用,并且还尝试编辑这些引用。
Sub vlookup()
Range("I13").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC2,Sheet2!C[-7],1,0)"
Range("J13").Select
ActiveCell.FormulaR1C1 = "=IF(LEN(RC[-1])=7,1,"""")"
Range("J14").Select
Cells.Find(What:="grand total", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.End(xlToRight).Select
Range("I8000:J8000").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
Columns("J:J").Select
Range("J13").Activate
ActiveWindow.SmallScroll Down:=-57
Selection.SpecialCells(xlCellTypeFormulas, 1).Select
Selection.EntireRow.Delete
Columns("I:J").Select
Selection.Delete Shift:=xlToLeft
End Sub
以上是运行VLOOKUP的原始宏的一部分。当我在列中有数据的报表上运行此命令时,出现错误提示 “运行时错误'1004':找不到单元。”
运行调试器时,它指向以下代码行:
Selection.SpecialCells(xlCellTypeFormulas, 1).Select