Пожалуйста, попробуйте этот код.
Public Sub InsertCargoNumber3()
Dim aaa As String
Dim ar As Long
aaa = InputBox("Enter cargo number")
If Len(aaa) Then
ar = Cells(Rows.Count, "B").End(xlUp).Row + 1
Cells(ar, "B").Value = aaa
aaa = InputBox("Enter Laycan Start Date")
If Len(aaa) Then
Cells(ar, "C").Value = aaa
Cells(ar, "D").Value = Val(aaa) * 3
End If
End If
End Sub
Обратите внимание, что подпрограммы и функции по умолчанию Publi c. Это когда они Личные , что они особенные.
Если вторая aaa
является датой, умножение этого числа на 3 должно дать дату в далеком будущем, но если вы хотите, чтобы это число, отформатированное как дата, я рекомендую заменить последнюю строку кода в приведенной выше процедуре для замены на эту.
With Cells(ar, "D")
.Value = Val(aaa) * 3
.NumberFormat = "dd-mm-yyyy" ' or whatever format you prefer
End With
Честно говоря, я не думал, что вы намереваетесь ввести там дату - возможно, потому что следующее умножение. Если бы я сделал это, я бы построил второй вход иначе, возможно, вот так.
' aaa has a value from previous use
do While Len(aaa)
aaa = InputBox("Enter Laycan Start Date")
If IsDate(aaa) Then
Cells(ar, "C").Value = DateSerial(aaa)
Cells(ar, "D").Value = DateSerial(aaa) * 3
Range(Cells(ar, "C"), Cells(ar, "D")).Numberformat = "dd-mm-yyyy"
Exit do
End If
Loop