从类型转换为';对象(,)和#x27;输入';字符串';从vb.net中删除单元格时无效
我试图删除B2到T5000范围内以单词hello开头的所有单元格,但是我不断得到从类型“Object(,)”到类型“String”的转换是无效的错误。任何帮助都将不胜感激从类型转换为';对象(,)和#x27;输入';字符串';从vb.net中删除单元格时无效,.net,vb.net,excel,visual-studio-2010,implicit-conversion,.net,Vb.net,Excel,Visual Studio 2010,Implicit Conversion,我试图删除B2到T5000范围内以单词hello开头的所有单元格,但是我不断得到从类型“Object(,)”到类型“String”的转换是无效的错误。任何帮助都将不胜感激 Dim xlCell As Excel.Range = Nothing xlCell = xlWsheet2.Range("B2:T5000") For Each cell In xlCell If xlCell.Value IsNot Nothing Then If CStr(xlCe
Dim xlCell As Excel.Range = Nothing
xlCell = xlWsheet2.Range("B2:T5000")
For Each cell In xlCell
If xlCell.Value IsNot Nothing Then
If CStr(xlCell.Value).StartsWith("Hello") Then
xlCell.Delete()
End If
End If
Next
End If
End If
Next
在我看来,您没有在循环中使用局部变量。应该是:
For Each cell In xlCell
If cell.Value IsNot Nothing Then
If CStr(cell.Value).StartsWith("Hello") Then
cell.Delete()
End If
End If
Next
命名范围xlCell
无助于调试。也许xlRange
更合适
话虽如此,我认为你的列举有点离谱。像这样的方法应该会奏效:
Dim xlRange As Excel.Range = Nothing
xlRange = xlWsheet2.Range("B2:T5000")
For Each rCell As Excel.Range In xlRange.Cells
If rCell.Value IsNot Nothing Then
If rCell.Value.ToString.StartsWith("Hello") Then
rCell.Delete()
End If
End If
Next
在循环内部,您是否不应该使用
单元格
而不是xCell
(这是整个集合/范围)?谢谢您,但我仍然收到相同的错误:(感谢您的帮助,是的,我已经重命名了范围以帮助解决问题,现在我在cell.Delete上从HRESULT:0x800AC472收到一个异常错误。您好,感谢您的帮助,这真的很奇怪,但它没有对以hello开头的单元格执行任何操作?它没有错误或任何操作,只是没有对工作表执行任何操作。请检查我的第一篇文章的完整代码,我从一个工作表复制并粘贴到另一个工作表中,然后用粘贴的单元格编辑它,希望这有意义?