我有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,所有的值都应该保持原样)
希望我已经充分地解释了我的疑问,达到了可以理解的程度。
我们将竭诚为您提供任何帮助。
发布于 2019-09-24 14:39:06
这应该可以解决你的问题,试试下面的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then copy_paste_as_value
End Sub
Sub copy_paste_as_value()
With ActiveSheet
.Range(.Cells(4,1),Cells(Rows.Count, 1).End(xlUp)).Copy
.Range("B4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Application.CutCopyMode = False
End Sub
https://stackoverflow.com/questions/56266520
复制相似问题