こんにちは、私はここで問題を抱えています。私は単純な 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 番目の行には値があり、出力: 2
しかし、値/空白のない3行目を読み取ると、エラーが出力されます。
これまでのところ、これは私が行ったコードです:
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
そして、このコードは正常に実行されています:)