web-dev-qa-db-ja.com

あるシートの列を別のシートから自動入力する

Sheet1からsheet2の列を設定したいと思います。 Sheet1に列Aがある場合、Sheet2Aにも同じ情報が必要です。

=sheet1!A1を使用してみましたが、A1sheet1からの値のみを返します。 =sheet1!Aを使用してみましたが、#NAME?のみを返します。

Sheet1の列Aにダイナミックレンジがある場合(空にするか、500行または1000行にすることができます(データベースからsheet1を作成しています))。 500行または1000行すべてを表示する別のシートでこれらの列の一部を使用するにはどうすればよいですか?

6
Kyle Copeland

以下のコードは、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
4
Santosh

あなたが正しいと理解したら、sheet1!A1をsheet2!A1に、sheet1!A2をsheet2!A2に、...正しいものにしたいですか?

最善の方法ではないかもしれませんが、次のように入力できます

= IF(sheet1!A1 <> ""、sheet1!A1、 "")

予想される最大行数までドラッグします。

5
Denis

Googleスプレッドシートで使用しました

 ={sheetname!columnnamefrom:columnnameto}

例:

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

Googleスプレッドシートでは、最初のセルで= ArrayFormula(Sheet1!B2:B)を使用できます。すべての列の内容は、Excelで機能するかどうか不明です

1
Meesh

「EntireColumn」プロパティを使用します。それが目的です。 C#スニペットですが、これを行う方法の良い指標を与える必要があります:

string rangeQuery = "A1:A1";

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

range = range.EntireColumn;
0
Jahmic