【问题标题】:Moving rows to other sheets将行移动到其他工作表
【发布时间】:2010-11-24 07:43:46
【问题描述】:

是否有一种方法或公式可以通过输入条件并按 Enter 键将某一行移动到不同的工作表?

如果我有 3 张工作表,每张工作表上的一列称为状态,在此列中我输入 COMP,它可以将所有信息移动到称为 COMP 工作表的工作表吗?

【问题讨论】:

  • 你需要一个宏。有这方面的经验吗?

标签: excel vba excel-2007


【解决方案1】:

在您的工作表中插入此代码

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Range("A1").Value = "COMP") Then ' Replace "A1" for your cell that will contain COMP

    ActiveSheet.Range("1:1").Copy _       ' Replace  1:1 by your souce row
        Destination:=Worksheets("COMP").Range("2:2") 'replace 2:2 by your dest row


    End If
End Sub

当用户更改工作表中的任何值时,如果“A1”的值为“COMP”,则您选择的行(示例中为 1)将复制到工作表中的目标行(示例中为第 2 行)补偿。

【讨论】:

  • 我会在我的工作表中添加这个
  • 我也可以看到这段代码在工作,但只有一行我喜欢 5 个不同的工作表,我想使用这个代码,所以如果第 2:2 行已满,这会自动转到下一个吗行?
  • @daddycardona 抱歉,这是一个宏,它们是 Excel 的编程方式。按照此屏幕xlpert.com/partA.htm 并将我的代码粘贴到图 1.2 所示的每个工作表中。
  • @daddycardona 只使用 Range("1:5") 复制前 5 行,依此类推
  • @belisarius 我可以拨通(c2)和(a1)吗?另外,如果我想要动态添加到 (comp),因为我不知道何时添加它们,这段代码会自动转到下一行还是替换 (comp)row(2:2) 中已经存在的内容?跨度>
【解决方案2】:

您可以构建一个 VBA 宏来为您完成所有移动,但这需要用户手动运行它,而不仅仅是在单元格中键入 COMP。您也可以让它自动更新,而无需用户按 COMP 并使用引用其他工作表的公式输入(但它会一直存在)。

=Sheet1!A1

以上代码将引用工作表“Sheet1”中左上角的单元格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多