Excel VBA: Sverweis Formel - Makro einfügen!

Bild von Excel Spalten - (Computer, programmieren, Microsoft Excel)

4 Antworten

Mein erster Gedanke wäre in dieser Situation, mal nach VLOOKUP zu googlen.

Ersetze doch einfach mal 'Tabelle1'!R[-1317]C[-7]:R[-1289]C[-6] durch 'Tabelle1'!$A$1:$C$31 und schaue, was passiert.
"ActiveCell.FormulaR1C1" ist ein Indikator für relative Bezüge, also einfach Formula.

Als nächstes würde ich versuchen, die WorksheetFunction zu verwenden:

Application.WorksheetFunction.VLOOKUP(lookup_value, table_array, column_index, range_lookup)

Beispiel hier: http://www.exceltrick.com/formulas_macros/vlookup-in-vba/

Woher ich das weiß:Berufserfahrung – Programmierer

Hi zusammen

Hab es noch kurz nach Posten der Frage selbst herausbekommen. War eigentlich ganz simpel... Danke trotzdem für die Personen, welche geantwortet hatten.

Hab den Bezug zu emptyrow dann doch noch hinbekommen, der Rest hat sich von selbst erledigt. (Eintrag emptyrow, 8)

Private Sub CommandButton2_Click()

Dim emptyRow As Long

'Ermitteln der ersten leeren Zeile
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

'Wohin werden die eingegebenen Datein eingefüllt?
Cells(emptyRow, 1).Value = ComboBox1.Value
Cells(emptyRow, 5).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
Cells(emptyRow, 3).Value = TextBox3.Value
Cells(emptyRow, 7).Value = TextBox4.Value
Cells(emptyRow, 8).FormulaR1C1 = "=VLOOKUP(RC1,'Maximale Fehler pro HC_pro KW'!R[-1317]C[-7]:R[-1289]C[-6],2,FALSE)"

If OptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "1. Halbjahr"
End If

If OptionButton2.Value = True Then
    Cells(emptyRow, 6).Value = "2. Halbjahr"
End If

    
Me.Label7 = "Speichern erfolgreich!"

End Sub

Du kannst dich ganz einfach wieder auf emptyRow beziehen:

Range("H" & emptyRow).Formula = "=VLOOKUP(A" & emptyRow & ",Tabelle1!A:B,2,0)"

Wichtig ist, dass du den Bezugstyp R1C1 bei .Formula entfernst.


Judoboy 
Beitragsersteller
 10.12.2014, 16:19

Hi Danke für deine Antwort. Hab es dann noch hinbekommen. Bei meiner Lösung habe ich allerdings den Bezugstyp R1C1 belassen... Kannst dir ja mal ansehen.

0

ich würde einfach die Zelle kopieren und eins drunter wieder einfügen!
Makro:
Range("Adresse").copy destination:=Range("Adresse").offset(1, 0)

Das destination:= könnte man sich sparen, ich schreibs der Klarheit wegen immer dazu.
oder

Cells(Zeile, Spalte).copy Cells(Zeile + 1, Spalte).paste

Nur, falls das Problem wieder mal auftritt, Du hast ja schon eine Lösung!
(und es gäbe noch weitere!)