【问题标题】:Automatically Copy Cells to Another Worksheet Based on Specific Words根据特定单词自动将单元格复制到另一个工作表
【发布时间】:2017-03-12 19:48:50
【问题描述】:

当“过期”一词出现在单元格中(在 H 列中)时,我希望该行中的名称(在 A 列中)和日期(在 F 列中)自动复制并粘贴到另一个工作表(名为 HomePage ) 并出现在 C12 和 E12 列中。

我有以下代码,但它正在剪切和粘贴整行。我只想将名称和日期复制并粘贴到我的主页。

Private Sub Worksheet_Change (ByVal Target As Range)
  If Target.Column = 8 Then
    If Target.Value = "Overdue" Then
      R = Target.Row
      Rows(R).Cut
      Worksheets("HomePage").Select
      With ActiveSheet
         lastrow = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
         .Cells(lastrow, 1).Select
         .Paste
      End With
    End If
  End If
End Sub

【问题讨论】:

  • 使用 IsEmpty() 函数排除空单元格

标签: excel vba


【解决方案1】:

既然你只想要两个单元格,为什么要复制和粘贴?直接赋值即可。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim R As Long
    If Target.Column = 8 Then
        If Target.Value = "Overdue" Then
            With Sheets("Homepage")
                R = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
                .Cells(R, 3) = Target.Offset(0, -7) ' Column C = Column A
                .Cells(R, 5) = Target.Offset(0, -2) ' Column E = Column F
            End With
        End If
    End If
End Sub

【讨论】:

  • 我试过 Private Sub 和 Sub 都不管用。我没有收到调试错误。什么都没有发生。
  • 它对我有用。我给你的是你已经拥有的 Worksheet_Change 过程的替代品,你指出它正在工作,但正在复制整行。我的代码不会更改活动工作表:您是否查看过“主页”?此外,由于(就像您的原始代码一样)它是基于 Worksheet_Change 事件构建的,您是否尝试将“过期”添加到 H 列?除非发生变化,否则它不会触发。
  • 我发现了我的错误。当单元格由公式填充时,Worksheet_Change 不会触发。我将不得不回到绘图板并改用 Worksheet_Calculate。
  • 好吧,不是一路回来。一种在不降低工作表速度的情况下使用它的方法是在第 8 列的范围上放置一个 countif 并使用计算事件仅检查该单元格,并且仅在 Overdue 的计数大于 0 时运行您的代码。然后在第 8 列中设置公式,以便仅在未处理记录时显示“过期”。无论如何,听起来你在上面。祝你好运!
【解决方案2】:

根据你的叙述

我想要该行中的名称(在 A 列中)和日期(在 F 列中) 自动复制并粘贴到另一个工作表(名为 HomePage) 并出现在 C12 和 E12 列中。

将以下代码放入您的工作表代码窗格

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Column = 8 And .Value = "Overdue" Then
            Sheets("Homepage").Range("C12").Value = Range(.row, "A")
            Sheets("Homepage").Range("E12").Value = Range(.row, "F")
        End If
    End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    相关资源
    最近更新 更多