【问题标题】:Auto populate columns in one sheet from another sheet从另一个工作表自动填充一个工作表中的列
【发布时间】:2013-07-23 17:06:02
【问题描述】:

我想从 sheet1 填充 sheet2 中的列。如果我在Sheet1 中有A 列,我希望Sheet2 中的A 具有相同的信息。

我尝试使用 =sheet1!A1,但它只返回来自 sheet1 中的 A1 的值。我尝试使用=sheet1!A,但它只返回#NAME?

如果来自Sheet1 的列A 具有动态范围(它可以为空或有500 或1000 行(我正在从我的数据库中填充sheet1))。如何在另一个显示所有 500 或 1000 行的工作表中使用其中一些列?

【问题讨论】:

  • -sheet1!a1 将起作用。将其放入 A1 表格中,然后将公式复制/粘贴下来,excel 将自动增加论坛。如果您想使用 VBA 一次处理整个列,下面有一个答案。

标签: excel excel-2010 vba


【解决方案1】:

在 Google 表格中,您可以在第一个单元格上使用 =ArrayFormula(Sheet1!B2:B),它会填充所有列内容,不确定这是否适用于 excel

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望在 sheet2!A1 中有 sheet1!A1,在 sheet2!A2 中有 sheet1!A2,...对吗?

    这可能不是最好的方法,但您可以输入以下内容

    =IF(sheet1!A1"",sheet1!A1,"")

    并将其向下拖动到您期望的最大行数。

    【讨论】:

      【解决方案3】:

      我在 Google 表格中使用过

       ={sheetname!columnnamefrom:columnnameto}
      

      例子:

      1. ={sheet1!A:A}
      2. ={sheet2!A4:A20}

      【讨论】:

        【解决方案4】:

        下面的代码将在 sheet1 中查找最后使用的行,并将从 A1 到 A 列中最后使用的行的整个范围复制到 Sheet2 中完全相同的位置。

        Sub test()
        
            Dim lastRow As Long
            lastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
            Sheets("Sheet2").Range("A1:A" & lastRow).Value = Sheets("Sheet1").Range("A1:A" & lastRow).Value
        
        End Sub
        

        【讨论】:

          【解决方案5】:

          使用“EntireColumn”属性,这就是它的用途。 C# sn-p,但应该可以很好地说明如何执行此操作:

          string rangeQuery = "A1:A1";
          
          Range range = workSheet.get_Range(rangeQuery, Type.Missing);
          
          range = range.EntireColumn;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-10-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多