[英]Option Strict On disallows implicit conversions from 'String' to 'Boolean'
[英]Option Strict On disallows implicit conversions from 'String' to 'Double'
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:\MyFolder\Book1.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- 當我打開 Option Strict 時出現錯誤。
您想將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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.