34

他のシートから値を取得したい。

たとえば、Excel(シート2)にいくつかの値があります。

    A  B  C  D
    -  -  -  -  
1 | 2  5  9  12
2 | 5  8  4  5
3 | 3  1  2  6

行 4 の各列を合計します。

これらの値をシート 2 で使用していますが、シート 1 で結果を取得したいと考えています。

シート2でコードを使用すると正しい答えが得られますが、別のシートで使用しようとすると、シート2ではなく現在のシートセルに対応する値の結果が得られます。

を使用してWith Application.WorksheetFunctionいます。

sheet2 をアクティブ シートとして設定するにはどうすればよいですか?

4

7 に答える 7

53

試す

 ThisWorkbook.Sheets("name of sheet 2").Range("A1")

コードの場所や現在アクティブなシートとは無関係に、シート 2 の範囲にアクセスします。シート 2 をアクティブ シートにするには、試してください。

 ThisWorkbook.Sheets("name of sheet 2").Activate

別のシートの行の合計だけが必要な場合は、VBA を使用する必要はまったくありません。シート 1 に次のような数式を入力します。

=SUM([Name-Of-Sheet2]!A1:D1)
于 2010-11-10T20:35:00.807 に答える
21

それは(あなたにとって非常に具体的な例です)

ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval

また

someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value

F1をクリックして、Worksheet オブジェクトを含む Worksheets コレクションについて読んでください。これには、Cell オブジェクトを保持する Cells コレクションがあります...

于 2010-11-10T20:35:39.440 に答える
2
Sub TEST()
Dim value1 As String
Dim value2 As String
value1 = ThisWorkbook.Sheets(1).Range("A1").Value 'value from sheet1
value2 = ThisWorkbook.Sheets(2).Range("A1").Value 'value from sheet2
If value1 = value2 Then ThisWorkbook.Sheets(2).Range("L1").Value = value1 'or 2
End Sub

これにより、2 つのシート セルの値が比較され、一致する場合はシート 2 の列 L に値が配置されます。

于 2016-07-16T08:16:07.280 に答える
1
SomeVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value

動作しませんでした。ただし、次のコードは私にとってのみ機能しました。

SomeVal = ThisWorkbook.Sheets(2).cells(aRow,aCol).Value
于 2015-05-11T06:33:38.147 に答える