重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一种可能,cells返回的是一个对象,而你后面strID是一个字符串,类型不匹配吧。
专注于为中小企业提供成都做网站、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业萨迦免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
第二种可能,CELL中的两个参数需要的的两个range吧,你用xlssheet.range("d" i) 试试,
vb.NET有时很怪,不同版本,或者不同机器,在操作excel时,判断单元格是否为空时,会出现不同的错误提示。
大多数情况,xlSheet.Cells(1, 1)="" 就可以判断这个单元是否有内容。
但是有时也会有不同的提示。总结不同机器,不同版本,用下面几种来试试单元格是否是空白。
xlSheet.Cells(1, 1)=""
xlSheet.Cells(1, 1).value=""
xlSheet.Cells(1, 1).value.tostring=""
如果上面三个代码都会自动提示错误,请用下面终极模式:)
xlSheet.Cells(1, 1).value = Nothing
很简单,看代码:
Dim objexcelfile As Excel.Application = New Excel.Application
objexcelfile.DisplayAlerts = False
Dim objworkbook As Excel.Workbook = objexcelfile.Workbooks.Open("D:\1.xlsx") 'Excel文件路径
Dim objimportsheet As Excel.Worksheet = objworkbook.Sheets(1) '读取第一个Sheet
Dim intRow As Integer = objimportsheet.UsedRange.Rows.Count '获取总行数
Dim prod As String = objimportsheet.Cells(j, i).value '读取单元格的值(i是列,j是行)
'释放Excel文件
objworkbook.Close()
objworkbook = Nothing
objexcelfile.Quit()
注意需要添加 Microsoft.Office.Interop 的引用。
NullReferenceException表示的是你调用的某一个对象为Null
从你的描述来看,你应该是在Form3里面Show的Form6
我建议你不要一行写太多的代码,这样出错不容易找到问题
你的DataGridView1、CurrentRow、Cells(0)、Value这些都可能为空
你可以先用一个变量保存你选中的单号,而且你可以在出错的时候看到这个单号到底有没有取到,进而确定具体问题
你可以在出错的时候选中这一个对象
然后右键,选择添加监视,或者快速监视来查看这个对象的值以确定它是不是null
你找的出错那一行的代码哪个对象为null,然后再确定问题就好了(一般对象为null都是流程不对或未取到正确的值)
跨窗口传值的话使用公有属性是没有错的,不过一般不直接传整个Grid,而是需要什么传什么;你这里需要单号的话直接设置单号这个属性,然后在showFrom6之前把单号取出来赋值过去就好了
按VBA写法,应该是:
xlbook1.Worksheets(1).Range(xlbook1.Worksheets(1).Cells(1, 1), xlbook1.Worksheets(1).Cells(30000, 20)).selcet = xyz
建议你使用BackGroundWorker控件。将代码写入控件的事件中,使用它的Start方法就可以开始工作了。是与主程序同时进行的。