MS Excel 跨两张表的列内容复制

MS Excel 跨两张表的列内容复制

Microsoft Excel 函数问题

如何将整列(包含数据内容)从主工作表复制(将值的列内容复制到另一列)到另一列的辅助工作表?

当主表更新(填充数据)时,复制列的值会自动更新到另一张表的列中吗?

我期望超链接功能无需通过引用指定单个单元格复制!

答案1

假设你的数据在(主要)工作表1!列,你的副本是工作表2!A列。因此,您只需=IF(NOT(ISBLANK(Sheet1!A1)), Sheet1!A1, "")在单元格 a1 中输入,然后将其复制到剩余单元格即可。希望这会有所帮助 :-)

答案2

这将是一件可以在微软 Excel使用自定义(“...工作簿中存储的代码片段可以自动执行重复性任务并快速整理您的数据。”),我将尝试分解问题,提供可用的解决方案,并在进行一些整理后提供有关如何使用它的说明。

问题

Sheet让我们用任意的名称来分解这个问题Column

  • 我们有两张工作表Sheet1Sheet2
  • 包含Sheet1存储在的值Column A
  • 包含在Sheet2我们Column B可能包含或不包含值中
  • 我们想要全部更改内容Sheet1Column A自动地将自身复制到Sheet2Column B

解决方案

通过创建一个由宏触发的宏,Worksheet_Change我们可以让宏自动复制值,稍后我将解释它是如何工作的:

' I have included some brief comments to help understand what is going on
' Automatically triggers when a change to a cell(s) occurs on the Sheet

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Target is an object, it also tells us where the change occurred

    ' Did the change occur in column A (A = 1, B = 2, etc)?
    If (Target.Column = 1) Then
        ' Get the ROW of where the change occurred
        Dim row as Integer = Target.Row

        ' Update Sheet2 using our row, but use column B
        Sheet2.Cells(row, "B") = Target.Value
    End If

End Sub

家政

记住:

  • 像我上面写的宏通常只适用于微软 Excel
  • 宏通常是传输计算机病毒并且应注意不要启用和/或运行来自不受信任来源的任何宏 - 话虽如此如果你选择使用我提供的任何说明,则风险由你自行承担
  • 宏驻留在您编写它们的工作簿(电子表格)中,并且在每次正常保存时都会保存;但是:
  • 在现代版本的 Excel 中,您可能需要将工作簿保存为不同的文件类型(Excel 启用宏的工作簿 .xlsm),以便保存上述内容
  • 除非你对宏进行数字签名(超出本指南的范围),否则你可能需要在每次加载工作簿时启用宏运行

如何

要开始将此宏添加到您的工作簿,您需要先打开要使用的电子表格,然后启动微软 Visual Basic 应用程序(以下称为 VBA)使用键Alt + F11

(此时我会最大化 VBA 窗口以避免混淆和可能的干扰)

当 VBA 窗口处于活动状态时,您将在左侧看到一个标有

Project - VBAProject

这通常包含项目层次结构,我们可以在这里将宏添加到工作簿中。我们要添加宏的地方是Sheet1 (Sheet1)

Sheet1 (Sheet1)是一个object称为Sheet1工作表的编程表示。您可以看到括号内包含通常在 Excel 中编辑的工作表的名称,在本例中,它也被称为 Sheet1。

要添加宏,Sheet1您可以right-click单击View Code或双击它以在Code窗口中打开它。

从这里您可以复制粘贴我的解决方案来开始。

如果你想自己编写宏,我建议你点击第一页的链接,并阅读Excel 中的自定义宏简介

问候

相关内容