Excel VBA 中的 Vlookup

Vlookup in Excel VBA

美好的一天。

使用Vlookup找到单元格后是否可以更改?

x = Application.WorksheetFunction.VLookup(y, worksheet.range, 2, False)

returns x 的值,基于使用 Vlookup 找到的内容。但是,您能否将该单元格更改为另一个值,例如

 Application.WorksheetFunction.VLookup(Y, worksheet.range, 2, False) = z

不,vlookup 为您提供它找到的单元格中的值,而不是对单元格值 属性 的引用。您将需要使用 find 方法在匹配值范围内找到相关单元格,然后使用 offset 移动到包含您要更改的值的列。

我不是 excel vba 人,但我认为这样的事情应该可行...

worksheet.range.Find(Y, lookin:=xlValues).Offset(0,2).Value = z

我假设 "worksheet.range" 包含有效的单元格范围。此外,如果您期望有多个匹配项,您可能需要遍历查找的结果。我忘记了 Offset 是否只是抓住范围内的第一个单元格然后从中偏移。