Сообщение об ошибке: System.InvalidCastException: Преобразование из строки "" для ввода типа 'Date' недопустимо.System.InvalidCastException: преобразование из строки "" в тип 'Date' недействительно
Sub Main()
Dim OutApp As Object
Dim OutMail As Object
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim fecha As String
Dim proc As System.Diagnostics.Process
For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL")
If proc.MainWindowTitle.Trim.Length = 0 Then
proc.Kill()
End If
Next
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Open("\\file.xlsm")
xlWorkSheet = xlWorkBook.Worksheets("Sheet")
Try
xlApp.Range("E41").Activate()
xlApp.Range("E4").Select()
xlWorkSheet.Range("E4").Select()
xlWorkSheet.Range("E4").Activate()
fecha = xlApp.ActiveCell.Value
Do While xlApp.ActiveCell.Value <> ""
'If (DateTime.Today - CDate(fecha)).Days = 180 Then
If (DateTime.Today - DateTime.ParseExact(fecha, "dd/mm/yyyy", CultureInfo.InvariantCulture)).Days = 180 Then
' --more lines ---
'...
End Sub
Получение ошибки в этой строке:
Do While xlApp.ActiveCell.Value <> ""
По какой-то причине кажется xlApp.ActiveCell.Value в настоящее время рассматривается как дата вместо строки.
Другое дело, это правильный способ сравнения, если между сегодняшним днем и значением ячейки существует разница в 6 месяцев?
If (DateTime.Today - DateTime.ParseExact(fecha, "dd/mm/yyyy", CultureInfo.InvariantCulture)).Days = 180
Попробуйте xlApp.ActiveCell.Text – Steve