it-swarm.com.de

Werte aus anderen Tabellen in Excel mithilfe von VBA abrufen

Hallo, ich bin neu in Excel und ich habe einige Probleme, Werte aus anderen Tabellen zu erhalten. 

Ich habe einige Werte in Excel (Tabelle2) zum Beispiel:

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

Ich arbeite mit diesen Werten in Sheet2 und möchte das Ergebnis in Sheet1 erhalten. Wenn ich meinen Code in Tabelle2 verwende, bekomme ich die richtige Antwort, aber wenn ich versuche, sie in einer anderen Tabelle zu verwenden, erhalte ich, dass das Ergebnis der Werte den aktuellen Blattzellen entspricht und nicht der Tabelle2.

  • Ich möchte die Summe jeder Spalte in Zeile 4 erhalten. Ich schaffe das, aber ich kann sie nur in Sheet2 verwenden.

Ich verwende "With Application.WorksheetFunction" und möchte das ändern, um die Werte von Sheet2 zu erhalten.

Können Sie mir bitte dabei helfen und wie Sie sheet2 als Aktivierungsblatt einstellen.

Ich hoffe meine Frage ist klar.

Vielen Dank

29
Apollon1954

Versuchen

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

zugriff auf einen Bereich in Blatt 2 unabhängig davon, wo sich Ihr Code befindet oder welches Blatt gerade aktiv ist. Versuchen Sie, um Blatt 2 zum aktiven Blatt zu machen

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

Wenn Sie nur die Summe einer Zeile in einem anderen Arbeitsblatt benötigen, ist die Verwendung von VBA nicht erforderlich. Geben Sie eine solche Formel in Blatt 1 ein:

=SUM([Name-Of-Sheet2]!A1:D1)
42
Doc Brown

Das wird (für Sie ein sehr spezifisches Beispiel)

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

OR

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

Holen Sie sich also einen F1 click und lesen Sie die Worksheets-Auflistung, die Worksheet-Objekte enthält, die wiederum eine Cells-Auflistung mit Cell-Objekten enthalten.

17
jpinto3912
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

Dadurch werden zwei Blattzellenwerte miteinander verglichen. Wenn sie übereinstimmen, wird der Wert auf Blatt 2 in Spalte L eingefügt.

2
James Heffer

SomeVal = ActiveWorkbook.worksheets ("Sheet2"). Zellen (aRow, aCol) .Value

funktioniert nicht. Der folgende Code hat jedoch nur für mich funktioniert.

SomeVal = ThisWorkbook.Sheets (2) .cells (aRow, aCol) .Value

0
RanonKahn

Vielleicht können Sie das Skript, das ich verwende, verwenden, um einen bestimmten Zellenwert von einem anderen Blatt zurück auf ein bestimmtes Blatt abzurufen.

Sub reviewRow()
Application.ScreenUpdating = False
Results = MsgBox("Do you want to View selected row?", vbYesNo, "")
If Results = vbYes And Range("C10") > 1 Then
i = Range("C10") //this is where i put the row number that i want to retrieve or review that can be changed as needed
Worksheets("Sheet1").Range("C6") = Worksheets("Sheet2").Range("C" & i) //sheet names can be changed as necessary
End if
Application.ScreenUpdating = True
End Sub

Hiermit können Sie ein Formular erstellen und nach Bedarf personalisieren.

0
Joni Depp

Probieren Sie den Arbeitsblattaktivierungsbefehl aus, bevor Sie Daten aus dem Arbeitsblatt benötigen:

objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate
0
Mike