gelernt VBA und es ist bereits 10-fach mit den Projekten, an denen ich arbeite geholfen.Ersetzen Sie bestimmte Kriterien einmal
Ich habe jedoch einen Haken gefunden.
Momentan habe ich derzeit eine "Template-Tabelle", in die Formeln eingebaut sind.
Es sieht ungefähr so aus:
Name
Date Revenue Cost profit margin
8/08 $10,000 $5000 $5000 100%
Total xxx xxx xxx
Also, wenn ich einen neuen Namen, hinzufügen müssen kopiere ich diese ganze „Schablonentabelle“ und es unter den letzten Zellen einfügen verwendet (I geschleift die letzten zu finden Zelle, so ist dies endRow markiert). Innerhalb der 8/08 Datumszeile (für Umsatz/Kosten) habe ich eine indirekte Formel, also suche ich den 'Namen' innerhalb des Blattnamens 8/08 (ich beschrifte den Blattnamen das Datum).
Ich muss den 'Name' eine Konstante, so dass es $ A $ 20 für die ganze Box ist. Wenn ich neue Daten hinzufüge, bleibt es $ A $ 20, während die anderen Formeln sich ändern, wenn ich die Daten einfüge (IE verweist das Datum direkt auf die linke Seite).
Dies ist, was ich getan habe, um die Formel zu ersetzen. Das einzige Problem ist, wenn meine Vorlage in der Zelle $ A $ 9 ist, und ich gehe, um die 9 bis 25 zu ersetzen, wenn die Formel für die Datumsregisterkarte 19 ist, ändert sie die 19 bis 125. Es ändert also alle 9 zu 25. Ich möchte nur die Formel ändern, die $ A $ fn war, aber ich bekomme einen Fehler dabei.
Fn = meine for-Schleife zu erkennen, wo die Vorlage-Box ist. So ersetzt ich diese ursprüngliche Formel mit der neuen Zelle, die ich es
klebteRange(Cells(endRow + 2, 2), Cells(endRow + 2, 7)).Replace What:=fn, Replacement:=endRow, SearchOrder:=xlByColumns, MatchCase:=True
Die Frage ist also, wie $ A $ x ändern (x die Zelle # ist) auf $ A $ y (die neue Zelle #) und Ax nicht zu berühren.
For fn = 1 To 10000
Set networkCell = Cells(fn, 1)
If networkCell.Value = "New Station Template" Then
Range(Cells(fn, 1), Cells(fn + 5, 10)).Copy
Range(Cells(endRow, 1), Cells(endRow + 5, 10)).Select
ActiveSheet.Paste
Cells(endRow, 1).Value = "New Station"
Range(Cells(endRow + 2, 2), Cells(endRow + 2, 7)).Replace What:=fn, Replacement:=endRow, SearchOrder:=xlByColumns, MatchCase:=True
count = count + 1
Exit For
End If
Next
Ich habe versucht: //// .replace Was: = "$ A $" & fn ///// Aber das funktioniert nicht, bekomme ich einen Fehler der Art – Dan
Ich frage mich, Wenn ich eine neueVariable = "$ A $" & fn, anstatt Fn zu ersetzen, verwende ich newVariable. Da es nicht so aussieht, kannst du $ A $ fn erstellen. – Dan
ja, gute Idee: – cyboashu