Ich entschuldige mich für solch eine einfache Frage. Ich habe das zu Tode gegooglet, und ich kann nicht herausfinden, warum das nicht funktionieren wird. Ich möchte nur eine neue Zeile hinzufügen und eine Formel in eine Zelle einfügen.Excel VBA Erstellen einer Formel aus Variablen
Mein Code ist dies
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim lStr As String
Dim nRow As Long
Dim nStr As String
lRow = Cells(Rows.Count, 5).End(xlUp).Row
lStr = CStr(lRow)
nRow = lRow + 1
nStr = CStr(nRow)
Cells(nRow, 1).Value = Date
Cells(nRow, 2).Value = ""
Cells(nRow, 3).Value = 25
Cells(nRow, 4).Value = 53
Cells(nRow, 5).Select
ActiveCell.formula = "=IF(AND(C" & nRow & "=""""|D" & nRow & "="""")|""""|E" & lRow & "-C" & nRow & "+D" & nRow & ")"
End Sub
Ich habe versucht, in der Formel des Zeichenfolge Wert der Zeile mit (unter Verwendung von nStr statt nRow, etc).
Wenn ich das "=" - Zeichen am Anfang entferne und es als Wert einfüge, fügt es ein, und wenn ich dann das "=" über Excel hinzufüge, wird es gut, also kenne ich das Format der Formel als a Die Saite ist in Ordnung.
Aber warum wird es nicht die Formel einfügen?
Ich habe es auch in der r1c1 Notation versucht.
Irgendwelche Ideen?
Beachten Sie, dass die Werte 25 und 53 temporäre Werte sind. Der Endbenutzer gibt manuell Werte in diese Zellen ein.
Ersetzen Sie die '|' mit Komma ','. VBA ist sehr amerikanisch zentrisch und die Formeln müssen als Standard US-amerikanisches Format eingegeben werden. –
Wow. Das hat funktioniert. Wenn ich also = IF (UND (C6 = "" | D6 = "") | "" | E5-C6 + D6) manuell in die Zelle eintrage, funktioniert es, aber über VB muss ich = IF (UND (C6 = "", D6 = "", "", E5-C6 + D6). DANKE –