【问题标题】:Copy information from one worksheet to another when a cell within that row meets certain criteria当该行中的单元格满足特定条件时,将信息从一个工作表复制到另一个
【发布时间】:2015-03-07 03:42:03
【问题描述】:

我有一个工作表,用于跟踪所有处于工人补偿/残疾状态的员工。它会记录他们受伤的时间、上次看医生的时间等信息。

一旦他们没有在 4 周内提交医生证明,我就会发出一封信,要求提供。我目前已将其设置为,当距离上一个便条超过 4 周时,单元格变为红色,这样我就可以通过并找到我需要向谁发送便条。

我想把它带到下一步,一旦超过 4 周,他们的信息就会自动填充到另一个工作表中,这样我就可以简单地从工作表 2 进行邮件合并。

这是我的设置: 表 1: 第 1 行“标题行”。 第 2 行及以下“每位员工及其所有记录”。 A 列“姓氏”。 B 列“名字”。 C 列“街道地址”。 D 列“城市、州、邮编”。 K栏“伤害”。 Z 列“最后一次医生就诊”。 AA 列“今天的日期”。 AB 列“自上次医生就诊以来的天数(通过公式从 AA 列减去 Z 列计算得出)。 AC 列“已发送的信函”。

如果 AB 大于 28,我希望将每列中的信息复制到工作表 2,A-I 列。

然后(如果可能)当我在第 I 列第 2 列(已发送的信件)中输入日期时,我希望从第 2 表中删除整行,并输入第 I 列第 2 列中的数据在 AC 列,表 1 中。

您可以提供的任何帮助将不胜感激!

谢谢! :)

【问题讨论】:

  • 您是在寻找 VBA 答案还是没有任何代码?
  • 我愿意接受任何可以完成我需要做的事情的答案。对VBA不是很熟悉,但我能弄明白:)

标签: excel


【解决方案1】:

如果我理解正确,如果 AB 大于 28,您希望将 A 到 I 列从 sheet1 复制到下一个打开的行,即 sheet2 上的 A 到 I 列。如果这是正确的,下面将执行此操作。

Sub Loop_For_Erin()
Dim c as Range
For Each c in Worksheets("Sheet1").Range("AB1:AB" & Worksheets("Sheet1").Range("AB" & Worksheets("Sheet1").Rows.Count).End(xlUp).Row)
   If c.value > 28 Then
      Worksheets("Sheet1").Range("A" & c.row & ":I" & c.row).Copy Worksheets("Sheet2").Range("A" & Worksheets("Sheet2").Range("A" & Worksheets("Sheet2").Rows.Count).End(xlUp).Offset(1,0).Row)
   End If
Next C

【讨论】:

  • 如果 AB 大于 28,则实际上是将工作表 1 上的 A-D、K 和 Z-AC 列复制到工作表 2 上 A-I 列中的下一个开放行。然后(如果可能)一次值在第 I 列第 2 表中输入,从第 2 表中删除整行,并将该值输入到 AC 列中。
  • 复制这些列并不困难。我不确定我是否理解您正在尝试做的第二部分。你能进一步解释一下吗?
  • 我将使用 Sheet2 作为需要发送信件的员工列表。一旦我给他们发了一封信,我就不再希望他们出现在 Sheet2 上。相反,我希望我发送这封信的日期出现在 Sheet1 列 AC 上。
  • 这部分工作可能太难了。也许不是这样做,我们可以添加如果 Sheet1 的 AC 列中有一个值,即使 AB>28,该行也不会复制到 Sheet2 ???
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多