Ich arbeite an einem VBA-Skript in Excel. Das folgende ist der Code, an dem ich arbeite.
Option Explicit
Sub MoveThingsAbout()
Worksheets("Sheet3").Cells.Clear
Worksheets("Sheet3").Range("A1").Value = "JOB"
Worksheets("Sheet3").Range("B1").Value = "STOCKCODE"
Worksheets("Sheet3").Range("C1").Value = "DATE"
Worksheets("Sheet3").Range("D1").Value = "QUANTITY TO MAKE"
Worksheets("Sheet3").Range("E1").Value = "QUANTITY MANUFACTURED"
Dim row As Integer
Dim fromdate As String
Dim stockCode As String
Dim todate As String
Dim innerRow As Integer
fromdate = ""
todate = ""
stockCode = ""
stockCode = Worksheets("Sheet2").Range("B2").Value
fromdate = Worksheets("Sheet2").Range("D2").Value
todate = Worksheets("Sheet2").Range("F2").Value
innerRow = 2
row = 2
Do While (Worksheets("Sheet1").Range("A" & innerRow).Value <> "")
innerdate = ""
innerStockCode = ""
innerdate = Worksheets("Sheet1").Range("L" & innerRow).value
innerStockCode = Worksheets("Sheet1").Range("G" & innerRow).Value
If (stockCode = innerStockCode And (innerdate >= fromdate And innerdate <= todate)) Then
Worksheets("Sheet3").Range("A" & row).Value = Worksheets("Sheet1").Range("A" & innerRow).Value
Worksheets("Sheet3").Range("B" & row).Value = Worksheets("Sheet1").Range("G" & innerRow).Value
Worksheets("Sheet3").Range("C" & row).Value = Worksheets("Sheet1").Range("L" & innerRow).Value
Worksheets("Sheet3").Range("D" & row).Value = Worksheets("Sheet1").Range("U" & innerRow).Value
Worksheets("Sheet3").Range("E" & row).Value = Worksheets("Sheet1").Range("V" & innerRow).Value
End If
innerRow = innerRow + 1
row = row + 1
Loop
End Sub
In diesem Code verwende ich eine Bedingung zum Vergleichen des inneren Datums mit dem Datum und dem Datum. Das fromdate und todate ist jedoch benutzerdefiniert. Sie sind im String-Format. Das innere Datum hat jedoch ein benutzerdefiniertes Format ("TT / MM / JJJJ H: MM"), da es aus SQL abgerufen wird. Also kann ich das Format des Innendatums nicht ändern. Deshalb muss ich das Format für fromdate und todate ändern, damit die Bedingung richtig funktioniert.
Ist es möglich, den vom Benutzer angegebenen Zeichenfolgenwert für fromdate und todate zu übernehmen und auf VBA-Ebene in das gewünschte Format zu ändern? oder gibt es einen anderen weg, dies zu erreichen?