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

问题描述 投票:4回答:5

我想从sheet1填充sheet2中的列。如果我在ASheet1列,我想在A中使用Sheet2来获得相同的信息。

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

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

excel excel-vba excel-2010 vba
5个回答
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

4
投票

我用过Google表格

 ={sheetname!columnnamefrom:columnnameto}

例:

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

3
投票

如果我理解你正确你想要sheet2!A1在sheet2!A1,sheet1!A2在sheet2!A2,...对吗?

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

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

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


1
投票

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


0
投票

使用'EntireColumn'属性,就是它的用途。 C#片段,但应该为您提供如何执行此操作的良好指示:

string rangeQuery = "A1:A1";

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

range = range.EntireColumn;
© www.soinside.com 2019 - 2024. All rights reserved.