Ich bin ein ziemlich neuer VBA-Benutzer und habe nur wenige Codes lernen, wie ich gehe und Foren lesen.Navigieren in mehreren Blättern in VBA je nach Zellenwert
Jetzt möchte ich etwas programmieren und ich konnte keinen Weg finden, es zu tun/einen Hinweis in den Foren, also komme ich, um um Ihre freundliche Hilfe zu bitten.
Ich habe viele Tabellen mit Namen als Titel, Ausgaben dieser Menschen darstellt. Mein Ziel ist es, eine Datei zu erstellen, in der ich die Tabellen neu gruppiere, und dann die Ausgabenreferenzen in der Tabelle "Home" extrahieren möchte. Die relevanten Flächen werden in derselben Zeile mit "Y" gekennzeichnet.
In der Tabelle "Home" habe ich Namen von Personen auf der ersten Seite, z. "Paul", "Marie", "Pierre" etc .... in der gleichen Spalte.
Ich möchte einen Code erstellen, der die Namen in der Kalkulationstabelle "Home" betrachten und Daten aus der "benannten" Kalkulationstabelle zurück auf die "Home" kopieren konnte.
Format wäre das gleiche für die "benannte Kalkulationstabelle", so dass ich immer in der gleichen Spalte suchen.
Ich habe folgendes versucht, so weit
Sub Expenses()
Set wk=ThisWorkbok.sheets("Home")
Dim Name as String
Dim Expense as Integer
line_newexpense = 9
rowline = 10
start_l =34
Do While Name <> "#"
Line = wk.Cells(start_l,3)
Name = ThisWorkbook.Sheets("Home").Cells(line_newexpense,39).Value
Expense = ThisWorkbook.Sheets(Name).Cells(rowline,3).Value
For j=50 to 8
If ThisWorkbook.Sheets(Name).Cells(25,j).Value="Y" Then
Line = ThisWorkbook.Sheets(Name).Cells(3,j).Value
End If
rowline = rowline+1
Next j
line_newexpense = line_newexpense + 1
Loop
Das Problem ist, wenn ich versuche, es betreibe ich eine „Error 9 Subscript out of range“ begegnen, so dass nicht sicher, wie ich das Problem begegnen könnte,
Vielen Dank im Voraus für Ihre Hinweise!
Mit freundlichen Grüßen,
Hallo Carolina, willkommen zu Stack Overflow. Ich habe Ihre Frage bearbeitet, um Ihren Code lesbarer zu machen. Ein gut eingerückter Code zieht in der Regel qualitativ bessere Antworten an. Viel Glück! –
Hey Carolina, wenn du 'wk = ThisWorkbok.sheets (" Home ")' machst, ist Arbeitsmappe falsch geschrieben, was bedeutet, dass du nicht auf 'Line = wk.Cells (start_l, 3)' zugreifen kannst, da wk nicht gesetzt ist. Dann, wenn Sie versuchen, j von 50 bis 8 zu iterieren, müssen Sie angeben, dass j j - 1 wie folgt sein wird: 'Für j = 50 bis 8 Schritt-1', aber mit diesem j wird rückwärts gehen und rowline wird vorwärts gehen . –
Bitte fügen Sie Screenshots von "Home" und "Name" Sheets hinzu – user3598756