Я работаю над сценариями VBA в Excel. Ниже приведен код, над которым я работаю.
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
В этом коде я использую условие сравнения внутренней даты с исходной и текущей. Но fromdate и todate определяются пользователем. Они в строковом формате. Но внутренняя дата находится в пользовательском формате («дд / мм / гггг ч: мм»), как это получено из sql. Поэтому я не могу изменить формат внутренней даты. Поэтому я должен изменить формат для fromdate и todate, чтобы условие работало правильно.
Можно ли взять строковое значение, данное пользователем для fromdate и todate, и изменить его на желаемый формат на уровне VBA? или есть другой способ добиться этого?