嗨,我在这里遇到了问题。我有一个简单的 excel 文件,我想做的就是读取列中的所有行并找到一个特定的字符串。但是出现了一个错误,'从字符串“START”转换为'Double'类型是无效的错误',我用谷歌搜索它,发现这是因为空行。那么我怎么可能忽略空行呢?到目前为止,这是我的代码:
For Each c In xlsWorkSheet.Range("B1:B300").Cells
If IsNothing(c.value) Then
x = x + 1
MessageBox.Show(x)
ElseIf c.Value = "START" Then
MessageBox.Show(x)
End If
Next
第一行是一个空行,所以它输出:1
第二行有一个值和输出:2
但是当它读取没有值/空白的第三行时,它会输出错误。
到目前为止,这是我所做的代码:
For Each c In xlsWorkSheet.Range("B1:B300").Cells
If IsNothing(c.value) Then
x = x + 1
ElseIf Not IsNothing(c.Value) Then
x = x + 1
If c.value.ToString.ToUpper <> "START" And c.value.ToString.ToUpper <> "END" Then
ElseIf c.value.ToString.ToUpper = "START" Then
start = x
ElseIf c.value.ToString.ToUpper = "END" Then
ends = x
End If
End If
Next
MessageBox.Show(start)
MessageBox.Show(ends)
Dim objAdapter1 As New OleDbDataAdapter("SELECT * FROM [WORK SCHEDULE$B" & start & ":I" & ends & "]", objConn)
Dim objDataset1 As New DataSet
objAdapter1.Fill(objDataset1)
DataGridView1.DataSource = objDataset1.Tables(0).DefaultView
这段代码运行成功:)