【问题标题】:Excel automatic repeat, convert rows into columnsExcel自动重复,将行转换为列
【发布时间】:2016-09-11 00:41:18
【问题描述】:

我有 2 个工作表

表 1

此工作表将包含一行,其中每一列都有不同的标题

表 2

我希望此工作表自动使用工作表 1 中第 1 行的每个标题填充 A 列,这将创建此

我将如何在 Excel 2016 中自动执行此操作,例如,当我在工作表 1 中添加一个新列时,它会在工作表 2 中添加一个新行?

谢谢

【问题讨论】:

  • 选择 Sheet1!A1:A3,复制,选择 Sheet2!A1,粘贴特殊->转置
  • 复制第 1 行在 A2 中粘贴特殊转置,然后删除第 1 行。如果您想要 vba,请在执行此操作时录制宏。
  • 如果我要添加一个宏,是否可以在每次将新项目添加到工作表 1 时触发它?
  • 是的,然后您将从 Worksheet_Change 事件中调用录制的宏。
  • 我学习的方式是谷歌。谷歌Worksheet_Change vba 你应该得到大量的信息。然后谷歌PasteSpecial transpose

标签: excel automation


【解决方案1】:

您可以使用 TRANSPOSE 函数执行此操作,但它有一个限制,即您必须提前计划并知道您希望拥有多少行/列。

步骤:

  1. 在工作表二中,选择 A 列中的一系列单元格,例如前 10 行,A1:A10
  2. 当单元格突出显示时,在公式栏中输入 =TRANSPOSE(Sheet1!A1:J1) 在离开公式栏之前,点击 CTRL+SHIFT+ENTER(这会使 Excel 将其视为数组公式)。

请注意,您在公式中从 Sheet1 中选择的列数必须与您在输入公式时在 Sheet2 中突出显示的行数相匹配。 (A到J是十列)

不幸的是,只要在它所查看的范围内有一个空白值,TRANSPOSE 就会返回 0。一种解决方法是使用 IF 公式检查 0 并返回一个空字符串:

=IF(TRANSPOSE(Sheet1!A1:J1)=0, "", TRANSPOSE(Sheet1!A1:J1))CTRL+SHIFT+ENTER

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多