我有一个Excel表格,其中插入了IF公式,例如:=IF(C23='Data Nifty'!$AD$2,"CMP"," ")。如上所述,使用先前派生的"CMP"在另一种情况下完成。即:=IF(A23="CMP",VLOOKUP($D$3,'Data Nifty'!$N:$Y,7,FALSE)," ")。现在的问题是,如果CMP改变为其他列,则原始值中提到CMP的地方会消失,我希望确保一旦出现CMP,值就不会更改。我尝试过用VBA代码,如果值更改,则将数据复制到另一个工作表中,但它没有起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.range = "A:A" Then
Call copy_paste_as_value
End If
End Sub
Sub copy_paste_as_value()
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C4").Select
Application.CutCopyMode = False
End Sub
当前问题:当CMP从一个价格更改为另一个价格时,在早期CMP之前提到的值变为0,并且新值出现在新CMP的前面。
我的目标:一旦“CMP”出现,它前面提到的值(即上图中的26、55、110.35、117、29.35、9)应该保持不变,新的值也应该出现在新的CMP的前面。因此,总体而言,一旦派生出CMP,所有的值都应该保持不变。
希望我已经清楚地解释了我的问题。
非常感谢您的任何帮助。