Foxtable(狐表)用户栏目专家坐堂 → [求助]关excel表读写问题


  共有1459人关注过本帖树形打印复制链接

主题:[求助]关excel表读写问题

帅哥哟,离线,有人找我吗?
yjh2002
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2061 威望:0 精华:0 注册:2017/4/24 13:47:00
[求助]关excel表读写问题  发帖心情 Post By:2017/10/12 10:13:00 [只看该作者]

做了个读写excel表的窗口,第一遍能正常工作。第二次选择另一个文件时,就提示“未将对象引用设置到对象实例”。把这个窗口关闭重新进入就正常了,不知道是啥原因。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/12 11:12:00 [只看该作者]

具体相关代码贴出来看看

 回到顶部
帅哥哟,离线,有人找我吗?
yjh2002
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2061 威望:0 精华:0 注册:2017/4/24 13:47:00
  发帖心情 Post By:2017/10/12 11:37:00 [只看该作者]

Dim lj As String =e.Form.controls("TextBox2").value '获取文件

Dim gzbq As Integer=e.Form.controls("NumericComboBox3").value
Dim gzbz As Integer=e.Form.controls("NumericComboBox4").value
Dim mhs As Integer=e.Form.controls("NumericComboBox1").value-1
Dim mzs As Integer=e.Form.controls("NumericComboBox2").value-1

try 
    Dim test As New XLS.Book(lj) '定义一个Excel工作簿
Catch ex As Exception
    messagebox.Show("文件错误!","提示")
    Return
End try
Dim Book As New XLS.Book(lj) '定义一个Excel工作簿
Dim zgzb As Integer=book.Sheets.Count
If gzbq<0 Or gzbz<0 Then
    messagebox.show("起始页与终止页不能小于0!","提示")
    Return
End If
If gzbq>zgzb Or gzbz>zgzb Then
    messagebox.show("工作表选择范围为0-" & zgzb-1,"提示")
    Return
End If
If mhs<0 Then
    messagebox.show("起始行不能小于0!","提示")
    Return
End If
Dim i As Integer
Dim dyg As String
Dim mclj As String
'msgbox("aa")
For myh As Integer=gzbq To gzbz
    Dim Sheet As XLS.Sheet = Book.Sheets(myh) '引用工作簿的第一个工作表
    i=mhs
    Do While 1=1
        dyg=sheet(i,0).value
        mclj=sheet(i,0).Hyperlink
        If dyg="" Or mclj="" Then
            Exit Do 
        Else 
            Tables("抓取数据_table1").AddNew
            Tables("抓取数据_table1").Current("bh")=i
            Tables("抓取数据_table1").Current("cxdy")=sheet(i,0).value
            Tables("抓取数据_table1").Current("clj")=mclj
            Tables("抓取数据_table1").Current("yh")=myh
        End If 
        i=i+1
    Loop
Next
Tables("抓取数据_table1").save
Tables("抓取数据_table1").Position=0

后面在timer里还有回写保存到excel的代码,应该没啥关系了。这段第一次运行没问题,运行完再选择一个新的文件就出错。

 回到顶部
帅哥哟,离线,有人找我吗?
yjh2002
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2061 威望:0 精华:0 注册:2017/4/24 13:47:00
  发帖心情 Post By:2017/10/12 11:40:00 [只看该作者]

出错的位置在            Tables("抓取数据_table1").AddNew 之后,因为每次都要清空datatable。出错后会出现一行空白行,所以应该是执行完addnew后出的错误。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/12 12:11:00 [只看该作者]

试试改成

 

SystemReady = False

            Dim nr As Row = Tables("抓取数据_table1").AddNew

            nr("bh")=i
            nr("cxdy")=sheet(i,0).value
            nr("clj")=mclj
            nr("yh")=myh
SystemReady = True

 回到顶部
帅哥哟,离线,有人找我吗?
yjh2002
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2061 威望:0 精华:0 注册:2017/4/24 13:47:00
  发帖心情 Post By:2017/10/12 14:02:00 [只看该作者]

我先试试,请问SystemReady是个什么属性?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/12 14:05:00 [只看该作者]

有可能是你填充值的时候触发了datacolchanged等事件导致的错误。

 

http://www.foxtable.com/webhelp/scr/2218.htm

 


 回到顶部