<p>因工资发放的需要,经常要给银行提供上报盘,要求提供一个文本文件,格式:<br/>单位号 CHAR(5)<br/>流水号 CHAR(5)<br/>用户名 CHAR(8) <br/>帐号 CHAR(19) <br/>时间(CHAR(6) <br/>在上报过程中,经常出现上报错误,如:有空行,位数不对,金额不对等,特编写<br/>了这个核对程序。其实现功能:<br/> 1、查行的位数不对,银行格式行总长52位。<br/> 2、查出多余的空行数。<br/> 3、能计算出上报的金额总数。<br/> 包含程序文件和一个模拟的上报文本文件</p><p>主要代码:<br/>Dim filename As String<br/>Dim Result As String<br/>Dim ReadOut As String<br/>Dim fd As FileDialog<br/>Dim Hsum, Changd, I As Integer<br/>Dim Sfje As Double<br/>On Error GoTo esc '错误处理<br/>Set fd = Application.FileDialog(msoFileDialogFilePicker) '定义文件对象<br/> fd.AllowMultiSelect = False<br/> fd.Filters.Clear<br/> 'Filters.Add "所有 WORD 文件", "*.doc", 1<br/> fd.Filters.Add "文本文件", "*.TXT,*.XLS"<br/> fd.InitialFileName = "d:\"<br/> Result = ""<br/> Hsum = 0<br/> Sfje = 0<br/> If fd.Show = -1 Then<br/> filename = fd.SelectedItems(1)<br/> filenum = FreeFile()<br/> Open filename For Input As #filenum</p><p> While Not EOF(filenum)<br/> <br/> Input #filenum, Result<br/> I = I + 1<br/> Changd = chkGb(Result)<br/> If Changd <> 52 Then <br/> MsgBox "第" & I & "行字符串长度有问题," & Changd<br/> End If<br/> If Result = "" Then '判断空行<br/> Hsum = Hsum + 1<br/> <br/> Else<br/> <br/> Sfje = Sfje + Round(Mid(Right(Result, 15), 1, 9) / 100, 2) '计算金额<br/> <br/> End If<br/> </p><p> Wend<br/>End If<br/> If Hsum > 0 Then<br/> MsgBox "有" & Hsum & "行无效空行"<br/> End If<br/>Cells(2, 2).Value = I<br/>Cells(3, 2).Value = Changd<br/>Cells(4, 2).Value = Hsum<br/>Cells(5, 2).Value = Sfje</p><p> MsgBox "检查完毕"<br/>esc:</p><p><br/>End Sub<br/><br/>
AaenJLaq.rar
(11.26 KB, 下载次数: 80)
<br/></p>
[此贴子已经被作者于2008-5-5 11:15:05编辑过] |