自动从另一个工作表填充一个工作表中的列

时间:2013-07-23 17:06:02

标签: excel excel-vba excel-2010 vba

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

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

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

5 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

我在Google表格中使用过

${arr[@]:start:len}

示例:

  1. ={sheetname!columnnamefrom:columnnameto}
  2. ={sheet1!A:A}

答案 2 :(得分:3)

如果我理解你,你想要在sheet2中使用sheet1!A1!A1,sheet1!A2在sheet2中!A2,......对吗?

这可能不是最佳方式,但您可以输入以下内容

  

= IF(Sheet 1中A1<!> “中”!,Sheet 1中A1, “”)

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

使用' EntireColumn'财产,它是什么。 C#片段,但应该给你一个很好的指示:

string rangeQuery = "A1:A1";

Range range = workSheet.get_Range(rangeQuery, Type.Missing);

range = range.EntireColumn;