Verwenden Sie eine Zelle Wert im VBA-Funktion mit einer variable
Ich bin neu VBA
und ich es nicht Schaffe, was ich will, obwohl es sehr einfach.
Muss ich automatisch ändern von Zellen von einer großen (333x333) leer (Nullen) Arbeitsblatt.
In einem separaten Tabellenblatt habe ich die Zeile und Spalte alle Zellen zu ändern. (5000)
Einen for
Schleife scheint nicht geeignet für diesen Zweck.
Hier ist der code von meinem makro. Das problem scheint in der Zeile vor dem letzten.
Dim val1 As String, val2 As String, i As Integer
For i = 1 To 333
Sheets("Feuil2").Activate
ActiveSheet.Cells(i, 1).Select
val1 = Cells(i, 1).Value
val2 = Cells(i, 2).Value
Sheets("Classeur2.csv").Select
Cells(val1, val2).Select
ActiveCell.FormulaR1C1 = "1"
Next i
Die Linie, die bewirkt, dass ein problem ist : Cells(Wert1, Wert2).Wählen Sie
Ich glaube, mein Fehler ist ein syntax-Fehler. Aber ich kann nicht herausfinden, was ich hinzufügen sollte, vor, während oder nach meiner zwei Variablen "Wert1" und "Wert2"
Was denkst du ?
Vielen Dank für deine Hilfe.
Nicolas.
Bearbeiten
Mein problem ist nun gelöst :
Die erste Antwort ist genau das, was ich brauchte Mann meine makro-Arbeit.
Die zweite Antwort ist die richtige und schneller Weg, es zu tun.
InformationsquelleAutor Nicolas | 2013-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Notwendigkeit zu aktivieren oder die Auswahl der Blätter oder Zellen, wenn Sie mithilfe von VBA. Sie können es alle direkt.
Der code:
produziert das gleiche Ergebnis wie Joe ' s code.
Wenn Sie wechseln müssen, Blätter für einige Gründe, verwenden Sie
Application.ScreenUpdating = False
am Anfang des Makros (undApplication.ScreenUpdating=True
am Ende). Dies wird entfernen Sie die screenflickering - und beschleunigt die Ausführung.Gut, ich schulde dir ein großes Dankeschön ! Heute hatte ich zum Maßstab meiner makro zu betrachten 5000 Zeilen. Es dauerte mehr als 20 Minuten, um durch zu gehen die ersten 3000 Zeilen. Ich weiß es, weil ich hatte, um das makro zu beenden und versuchen, Ihre Lösung. Verwendet habe ich diese 20 Minuten um zu verstehen, die "Range" - notation. Es schneller (etwa eine Minute).
Sie können die Geschwindigkeit sogar noch weiter durch das einfügen
Application.ScreenUpdating = False
undApplication.Calculation = xlCalculationManual
! Am Ende des Makros zurücksetzen mitApplication.ScreenUpdating = False
undApplication.Calculation = xlCalculationAutomatic
🙂Nur merkte ich schon erwähnt das ScreenUpdating in die Antwort... :-/
InformationsquelleAutor Peter Albert
WERT1 und WERT2 müssen gedimmt werden als ganze Zahl, nicht als string, nicht als argument für die Zellen nimmt, die ganzen zahlen, nicht mit strings, die als Argumente.
Vielen Dank, es funktioniert wie erwartet 🙂
InformationsquelleAutor Joe