Excel-VBA-Einstellung Wert der Zelle in einer Formel

Hey an Alle ich habe einige hart-code in excel vba, die einen gegebenen Zellen-Wert = um eine Formel, und ich habe mehrere code-Zeilen, die diese für die einzelnen Zellen der Wert ändert sich aber die Formel zu betrachten, die bestimmte Spalte seiner unter.

Also meine Frage ist, gibt es eine Möglichkeit, code, der das Zeug unten in 1 Linie, so dass die Formel ändert sich automatisch die Spalten seiner Betrachtung abhängig von der Spalte, das eigentlich in.

Sheets("Standalone Non Clustered").Range("G10").Formula = "=CEILING(Worksheet!$G$9*(1+Worksheet!$G$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("H10").Formula = "=CEILING(Worksheet!$H$9*(1+Worksheet!$H$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("I10").Formula = "=CEILING(Worksheet!$I$9*(1+Worksheet!$I$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("J10").Formula = "=CEILING(Worksheet!$J$9*(1+Worksheet!$J$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("K10").Formula = "=CEILING(Worksheet!$K$9*(1+Worksheet!$K$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("L10").Formula = "=CEILING(Worksheet!$L$9*(1+Worksheet!$L$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("M10").Formula = "=CEILING(Worksheet!$M$9*(1+Worksheet!$M$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("N10").Formula = "=CEILING(Worksheet!$N$9*(1+Worksheet!$N$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("O10").Formula = "=CEILING(Worksheet!$O$9*(1+Worksheet!$O$10+Info!$B$14),5)"
    Sheets("Standalone Non Clustered").Range("P10").Formula = "=CEILING(Worksheet!$P$9*(1+Worksheet!$P$10+Info!$B$14),5)"

Sehen, wie jeder Bereich geht von G auf P in das alphabet und die Formel in jeder Zeile wird so eingestellt, daß G auf P-Spalte. Gibt es eine Möglichkeit, eine Zeile Range("G10:P10") und haben die Formel ändern sich basierend auf Spalte, was Ihr eigentlich in der Tabelle?

Edit:

Entfernen des $ - syntax das problem behoben, aber ich komme hier mit einem problem:

Sagen, dass ich die range auf eine variable, und ich möchte eine Zeile hinzufügen, die range-Variablen und verwenden Sie die variable in der Formel der Zeile darüber. Wie würde ich mich über die Inkrementierung dieser variable um 1.

        Set shownDatabaseRows = Sheets("Standalone Non Clustered").Range("10:10")
Set hiddenDatabaseRows = Sheets("Standalone Non Clustered").Range("11:108")

hiddenDatabaseRows.EntireRow.Hidden = True
shownDatabaseRows.EntireRow.Hidden = False

    Sheets("Standalone Non Clustered").shownDatabaseRows.Formula = "=CEILING(Worksheet!G$9*(1+Worksheet!G$10+Info!$B$14),5)"


For Each cell In rng

    If cell.Value >= 2048 Then


        shownDatabaseRows = shownDatabaseRows.Count + 1

        shownDatabaseRows.EntireRow.Hidden = False

                Sheets("Standalone Non Clustered").shownDatabaseRows.Formula = "=(CEILING(Worksheet!G$9*(1+Worksheet!G$10+Info!$B$14),5))/2"

      ...

Ich erhalte eine Fehlermeldung bei der Formel Zeilen, so im denken, dass etwas falsch mit der Art, wie ich bin einrichten die shownDatabaseRows variable. irgendwelche Ideen?

  • Besser, Ihr eine andere Frage. Count ist schreibgeschützt, Sie können es nicht ändern. Ich bin nicht wirklich verstehen, was Sie wollen. Fügen Sie eine neue Zeile zu shownDatabaseRows? Set shownDatabaseRows = Union(shownDatabaseRows, cell.EntireRow)? Sheets("Standalone Non Clustered").shownDatabaseRows keinen Sinn macht.
  • Ich begann eine neue Frage: stackoverflow.com/questions/17789077/...
InformationsquelleAutor user1305569 | 2013-07-22
Schreibe einen Kommentar