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 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
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)
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.
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.
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
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.
Probieren Sie den Arbeitsblattaktivierungsbefehl aus, bevor Sie Daten aus dem Arbeitsblatt benötigen:
objWorkbook.WorkSheets(1).Activate
objWorkbook.WorkSheets(2).Activate