2017-12-11 1 views
1

Ich versuche, eine rohe Excel-Datei in ein benutzerdefiniertes Format zu bekommen. Ich habe unten ein Bild hinzugefügt, damit es leichter erklärt werden kann. Ich werde die Anforderungen auch als Schritte adressieren.Autofill in Excel VBA gibt Fehler 1004 zurück

1) Ich muss alle Spalten loswerden, die "Importo" oder "Prezzo" enthalten 2) Ich muss das Datum aus den verbleibenden Spalten (Quantitá) extrahieren. Zuerst lege ich eine leere Zeile oben drauf und dann wende ich mich rechts an (Zelle, 7).

So weit, so gut. Dann möchte ich die restlichen Spalten automatisch füllen, aber ich bekomme einen Fehler 1004. Im Beispielcode habe ich versucht von J: O, aber wirklich ID brauche es von J bis zur letzten Spalte. Ich poste den Code (der bis zur letzten Zeile funktioniert).

Ich habe mich gefragt, ob Autofilling hier die beste Vorgehensweise ist, vielleicht wäre die Indexierung aber besser?

Sub delete_col() 
Dim A As Range 

    Do 
     Set A = Rows(1).Find(What:="Importo", LookIn:=xlValues, lookat:=xlPart) 
     If A Is Nothing Then Exit Do 
     A.EntireColumn.Delete 
    Loop 

    Do 
     Set A = Rows(1).Find(What:="Prezzo", LookIn:=xlValues, lookat:=xlPart) 
     If A Is Nothing Then Exit Do 
     A.EntireColumn.Delete 
    Loop 

Rows("1:1").Select 
ActiveCell.EntireRow.Insert 

ActiveCell.Range("J1").Select 
ActiveCell.FormulaR1C1 = "=RIGHT(R\[1\]C,7)" 

Selection.AutoFill Destination:=ActiveCell.Range("J1:O1"), Type:=xlFillDefault 

End Sub 

enter image description here

Antwort

2

Ich nehme an, dass in der Linie ActiveCell.FormulaR1C1 = "=RIGHT(R\[1\]C,7)", die \ eine Art von Typo ist, die gelöscht werden sollen.

In Bezug auf die 1004-Fehler, der einfachste Weg, um es zu gehen, während der automatische Ausfüllen zu tun, ist so etwas wie diese:

Sub TestMe() 
    Range("A1:O1") = Range("J1") 
End Sub 

So wird jeder Wert in Range("A1:O1") mit dem Wert von Range("J1") eingestellt werden.


Allerdings verwendet der Code eine Menge Select, Activate und ActiveCell. Versuchen Sie diese zu vermeiden, da sie in VBA nicht als gute Praktiken gelten und zu unterschiedlichen Fehlern führen können. How to avoid using Select in Excel VBA

+1

Vielen Dank !!! und ja, das muss mit Formatierung gekommen sein. –

+0

@MarkusKnopfler - willkommen :) – Vityata