【问题标题】:If cell has value copy to the next column same row vba code如果单元格具有复制到下一列相同行 vba 代码的值
【发布时间】:2015-03-07 12:40:23
【问题描述】:

我正在寻找一个宏,它将复制A 列中的任何单元格,如果该单元格在同一行的B 列中具有值,例如如果A14="zois" 复制"zois" 到@987654326 @。

我有这段代码,但大多数时候A 中的空白单元格采用B 中未复制的值。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [A1]) Is Nothing Then  
    [b1:B100] = [a1:a100].Value 
  End If  
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您在 A 列中输入的任何内容都将被复制到 B 列中(甚至是空白!!)

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim A As Range, intr As Range, r As Range
        Set A = Range("A:A")
        Set intr = Intersect(A, Target)
        If intr Is Nothing Then Exit Sub
    
        Application.EnableEvents = False
            For Each r In intr
                r.Copy r.Offset(0, 1)
            Next r
        Application.EnableEvents = True
    End Sub
    

    编辑#1:

    如果A中的值被清除,此版本将不会清除B列中的值:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim A As Range, intr As Range, r As Range
        Set A = Range("A:A")
        Set intr = Intersect(A, Target)
        If intr Is Nothing Then Exit Sub
    
        Application.EnableEvents = False
            For Each r In intr
                If r.Value <> "" Then
                    r.Copy r.Offset(0, 1)
                End If
            Next r
        Application.EnableEvents = True
    End Sub
    

    请务必在安装新版本之前删除旧版本。

    【讨论】:

    • 此代码有效,但是当从 A 列中的单元格中删除的值也从 B 中的单元格中删除时,就像 B1 = A1。如果我删除 A 中的值,则可能不会删除乙?
    • @zoismiaoulis 查看我的EDIT#1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多