Frage von foofighter90, 35

Excel Makrofunktion mit Zugriff auf andere Tabelle?

Hallo, ich habe eine Funktion erstellt, die auf eine andere Tabelle zugreifen soll. Bis jetzt funktioniert die Funktion nur auf der gleichen Tabelle wie auf der sie zugreifen soll. Wo liegt der Fehler?

Code:

Public Function UmsatzSuchen(isin As String, jahr As Integer) As String Worksheets("Tabelle1").Select
Dim x As Range
Dim y As Range
Dim col As Integer
Dim row As Integer
Set x = Range("C1:U1").Find(jahr)
Set y = Range("B2:B69").Find(isin)
col = x.Column
row = y.row
UmsatzSuchen = Worksheets("TabelleB").Cells(row, col).Value
End Function

Funktion ist abgespeichert im vorausgewähltem "Modul1". Geht um Excel 2010.

Vielen Dank schon mal.

Expertenantwort
von Oubyi, Community-Experte für Excel, 18

Auf Anhieb würde ich sagen, versuche es mal mit With statt mit Select:

Public Function UmsatzSuchen(isin As String, jahr As Integer) As String
Dim x As Range
Dim y As Range
Dim col As Integer
Dim row As Integer
With Worksheets("Tabelle1")
Set x = .Range("C1:U1").Find(jahr)
Set y = .Range("B2:B69").Find(isin)
col = x.Column
row = y.row
UmsatzSuchen = Worksheets("TabelleB").Cells(row, col).Value
End With
End Function

(Punkte vor .Range beachten!)

Das ist nur ein

ungetesteter

Vorschlag "auf die Schnelle".

Antwort
von PWolff, 18

Vermutlich beziehen sich Eigenschaften, die nicht voll qualifiziert sind, auf das Element, in dem das Makro existiert.

In diesem Fall:

Range(...)

ist gleichbedeutend mit

Me.Range(...)

Wobei Me das Worksheet bezeichnet, in dem der Makro-Code steht.

Um auf Zellbereiche der anderen Tabelle zuzugreifen, kannst du

Worksheets("Tabelle1").Range(...)

verwenden.

-----

(Ich würde aber eine Objektvariable für Worksheets("Tabelle1") verwenden.)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten