首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果单元格值发生更改,则仅将单元格值发生更改列复制到另一个工作表中,但不复制两个工作表中的公共值

如果单元格值发生更改,则仅将单元格值发生更改列复制到另一个工作表中,但不复制两个工作表中的公共值
EN

Stack Overflow用户
提问于 2019-05-23 00:12:18
回答 1查看 427关注 0票数 3

我有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代码,如果值发生更改,则将数据复制到另一个工作表,但它不起作用。

代码语言:javascript
运行
AI代码解释
复制
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,所有的值都应该保持原样)

希望我已经充分地解释了我的疑问,达到了可以理解的程度。

我们将竭诚为您提供任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-24 14:39:06

这应该可以解决你的问题,试试下面的代码:

代码语言:javascript
运行
AI代码解释
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56266520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档