SITUATIONKann die CONCATENATE-Formel anstelle des kaufmännischen Und-Zeichens verwendet werden?
ich eine Reihe von Seriennummern 52 Datum erzeugt wurden: - 42.831-43.195 Zellen in B3 bis BB3 jeweils (jede Seriennummer Datum um 7 erhöht).
Der folgende Code konvertiert die Datumsseriennummern in Datumsangaben im Format "dd-mmm-yy". Hier ist der Code, der zeigt 52 Rechnungsdaten für jede Woche des Jahres von 06-Apr-17 bis 05-Apr-18 in der nächsten Zeile nach unten: -
Dim intAdd7 As Integer
intAdd7 = 0
Dim i As Integer
Dim lngSerialDate As Long
For i = 2 To 54 'COL C TO COL BB
lngSerialDate = Cells(3, i).Value + intAdd7
Cells(4, i) = "=TEXT(" & lngSerialDate + intAdd7 & ",""dd-mmm-yy"")"
Next i
End Sub
ich an dieser Stelle hinzufügen muss, dass Nekomatic freundlich versorgte mich mit der Platzierung der kaufmännischen Und-Zeichen.
ZIEL
Als relativer Neuling auf die VBA-Sprache, ich führe, dass der Ampersand wirkt als Verkettungsoperator zu glauben. Ich bin hier akademisch und versuche, die Unterschiede in der Sprache zu lernen, habe aber keinen Erfolg darin, die CONCATENATE-Formel als Alternative zum Ampersand zu ersetzen. Hier sind meine Versuche: -
Cells(4, i) = "=TEXT(CONCATENATE("lngSerialDate+intAdd7,")""dd-mmm-yy"")"
Cells(4, i) = "=TEXT(CONCATENATE("lngSerialDate+intAdd7",)""dd-mmm-yy"")"
Cells(4, i) = "=TEXT(CONCATENATE("lngSerialDate+intAdd7",),""dd-mmm-yy"")"
Alle drei Versuche machen VBA Rinde bei mir einem Kompilierungsfehler zu geben: -Erwartete-Ende der Anweisung und der Text wird rot und die Variable „lngSerialDate“ wird blau markiert.
Erlaubt VBA nicht die TEXT und CONCATENATE zusammenarbeiten oder ist meine Syntax falsch? Jede Hilfe dort würde sehr geschätzt werden.
ComfortablyNumb
Das kaufmännische Und-Zeichen, wie es im ursprünglichen Codeblock verwendet wird, ersetzt nicht jedes Und-Zeichen durch eine "CONCATENATE" -Funktion. Stattdessen verknüpft (verkettet) es jedes Segment der Zeichenfolge mit der entsprechenden Variablen. Das Endergebnis ist eine Zeichenfolge, die wie folgt aussieht: '= TEXT (42831," TT-MM-JJJJ ". In der Version, die Sie versuchen, richtig zu versuchen, versuchen Sie, die' Verketten'-Funktion in einem Excel zu verwenden Formel, die einfach nicht funktioniert – user3561813
Sie mischen ein Format mit einer Summe, nein? Wenn ich es richtig gelesen habe, versuchen Sie dies zu tun: '= TEXT (CONCATENATE (" & lngSerialDate + intAdd7 & "," dd- mmm-yy ")," dd-mmm-yy "). Sie haben einen Wert, aber dann ein Format, das in Ordnung ist, aber Sie geben nicht das Format für den' Text() 'Teil Ihrer Formel an. Was ist Ihr eigentliches Ziel bei der Verwendung von CONCATENATE? – BruceWayne
Ihre Syntax ist falsch. An vielen Stellen. VBA-Variable kann nicht in Worksheet-Formel als benannter Bereich verwendet werden. Für Textformel fehlt Komma für Formatparameter und zusätzliche Anführungszeichen. Entweder verwenden Worksheet-Funktion 'Concat' oder verwenden Sie benannte Bereiche intead von Variablen.Weitere korrekte Methode zum Festlegen der Formel ist' .Formula' – cyboashu