1- 创建一个像 C:\MyFolder\Book1.xlsx 这样的 excel 文件。
2-运行以下代码,查看代码是否正常工作。
Option Strict Off
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
DateTimePicker1.Value = CDate(CStr(System.DateTime.Now.AddDays(-System.DateTime.Now.Day)))
Dim xlApp As New Excel.Application
xlApp.WindowState = Excel.XlWindowState.xlMinimized
Dim wb1 As Excel.Workbook
wb1 = xlApp.Workbooks.Open("C:MyFolderBook1.xlsx")
Dim ws1 = CType(wb1.Sheets(1), Excel.Worksheet)
With ws1
.Range("A1").Value = "2017"
If .Range("A1").Value.ToString <> CDbl(DateTimePicker1.Value.ToString("yyyy")) Then
MsgBox("error")
End If
End With
End Sub
End Class
5-当我打开选项严格打开时,我遇到错误。
您希望将ws.Range("A1").Value
的字符串表示形式与DateTimePicker1.Value
的字符串表示进行比较。
将DateTimePicker1.Value
转换为Double
似乎很奇怪。这就是为什么编译器显示错误,因为代码
.Range("A1").Value.ToString <> CDbl(DateTimePicker1.Value.ToString("yyyy"))
将尝试将 string
类型的值与 double
类型的值进行比较,这是 Strict Option On
不允许的。
只需比较字符串而无需转换为双精度
If .Range("A1").Value.ToString() <> DateTimePicker1.Value.ToString("yyyy") Then
MsgBox("error")
End If