覆盖vlookup公式excel
我有一本两页的工作簿。使用vlookup公式从数据表填充的订单表。工作完成后,将打印并清除订单。但是,用户有时需要更改订单表(受保护)中的单元格值,但保持源中的原始值不变。基本上是手动覆盖单元格。覆盖vlookup公式excel,excel,vba,Excel,Vba,我有一本两页的工作簿。使用vlookup公式从数据表填充的订单表。工作完成后,将打印并清除订单。但是,用户有时需要更改订单表(受保护)中的单元格值,但保持源中的原始值不变。基本上是手动覆盖单元格。 是否有一种方法或代码允许手动覆盖单元格值,但保留公式以备将来使用?您可以通过使用辅助单元格,在不使用VBA的情况下实现这一点 与其让用户用公式覆盖单元格,他们可以在打印区域旁边的某个辅助单元格中输入所需的临时值 VLOOKUP公式可以封装在IF语句中,该语句显示辅助单元格值(如果存在),否则它使用VL
是否有一种方法或代码允许手动覆盖单元格值,但保留公式以备将来使用?您可以通过使用辅助单元格,在不使用VBA的情况下实现这一点 与其让用户用公式覆盖单元格,他们可以在打印区域旁边的某个辅助单元格中输入所需的临时值
VLOOKUP
公式可以封装在IF
语句中,该语句显示辅助单元格值(如果存在),否则它使用VLOOKUP
公式并显示结果
=IF(COUNTBLANK(H1)=0,H1,VLOOKUP(…)
假设辅助细胞为H1
,obvs。换衣服
然后,用户可以根据需要更改/删除辅助单元格中的值,而不影响输出单元格中的公式
VBA路线是使用工作表\u Change
事件,并在目标单元格为空时更新单元格公式
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CellRng As Range
Set CellRng = ActiveSheet.Range("A1") 'cell with formula, change to suit
If Not Intersect(Target, CellRng) Is Nothing Then
If CellRng.Value = vbNullString Then _
CellRng.Formula = "=VLOOKUP(…)" 'change formula to suit
End If
End Sub
这将允许用户使用不同的值覆盖该单元格中的公式,但会在用户删除或清除该单元格的内容时重置公式
如果你能容纳辅助单元格,我认为非VBA路线对用户来说更直观;删除内容后,如果单元格仍为空,可能会让人感到困惑。谢谢你,Andyward。辅助单元格工作正常。如果用户更改订单中的值,它将覆盖vlookup公式。如果用户此时只是“打印”订单,而没有保存已完成的工作,那么下次打开to book时,源数据和公式应保持不变。但是,如果用户能够保存,则会覆盖公式,但源数据应保持不变。