以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于终止程序运行的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149741) |
|
-- 作者:czy66ds -- 发布时间:2020/5/11 11:14:00 -- 关于终止程序运行的问题 在导入Excel表时,希望实现当Excel表中某指定列的单元格内容不是“已通过”时,终止运行。 我的代码如下: Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel2007文件|*.xlsx" \'设置Excel文件筛选器 \'Excel2003文件|*.xls| If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) \'获取用户选择的工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'工作簿中第一个表 \'------检查审批记录表是否存在非已通过的记录------------ For n As Integer = 1 To Sheet.Rows.Count -1 \'n为循环到的行数 If sheet(n,26).Text <> "已通过" Then MessageBox.Show("差旅费列表中存在没有审批通过的记录,请处理!") Exit For Return End If Next 但是没有达到目的,这是为何? |
|
-- 作者:czy66ds -- 发布时间:2020/5/11 11:35:00 -- 就是在正式导入前,检查一下excel表某列中是否存在不正确的内容,以决定导入是否正式运行。 |
|
-- 作者:有点蓝 -- 发布时间:2020/5/11 12:12:00 -- 是不是数据里有空格或者其他看不见的字符? If sheet(n,26).Text.trim() <> "已通过" Then 可以把单元格内容复制到记事本或者word里面看看有没有其他字符
|
|
-- 作者:czy66ds -- 发布时间:2020/5/11 12:18:00 -- 实际情况是 当sheet(n,26).Text <> "已通过" 时, MessageBox.Show("差旅费列表中存在没有审批通过的记录,请处理!")正常运行 但Return 没运行
|
|
-- 作者:有点蓝 -- 发布时间:2020/5/11 12:19:00 -- 去掉Exit For试试 |
|
-- 作者:czy66ds -- 发布时间:2020/5/11 12:27:00 --
|
|
-- 作者:czy66ds -- 发布时间:2020/5/11 12:33:00 -- 明白了,Exit For挡住了Return 谢谢
|