VBA处理文件框架代码 【第五部分(5.1.1):具体业务处理代码】
2017-08-13 20:57
591 查看
本程序共分7个部分
【框架代码】
1.处理流程
【框架代码】
2.变量定义
【框架代码】
3.具体处理
【框架代码】
4.bat定义
【框架代码】
5.Excel文件操作
└
5.1.具体业务流程(读取,写入文件)
└ 5.1.1.具体业务处理代码
6.目录结构,框架功能介绍
7.程序页面布局
创建成果物文件
读取数据(IN)
写入数据(OUT)
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'* *
'* Write Out 指紋情報を出力対象に記入 *
'* 作成日:2017/08/13 *
'* 作成者:sun *
'* 更新日:2017/08/13 *
'* 更新者:sun *
'* *
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Public Sub writeFingerprintInfoToOutFile(outWb As Workbook)
On Error GoTo errl
'人たち毎月の情報
Dim peopleStartTimeList(31) As String
Dim peopleEndTimeList(31) As String
'★★★Operate Out ファイル 指紋情報記入 start★★★
outWb.Activate
outWb.Sheets("LIST").Select
For i = 3 To 100
outWb.Sheets("LIST").Select
peopleName = Cells(i, 3).Value
peopleNumber = Cells(i, 2).Value
If peopleName = Empty Then
Exit For
End If
Sheets(peopleNumber).Select
If fingerprintStartTimeInfo.exists(peopleName) Then
Dim outFilePeopleStartTimeList()
Dim outFilePeopleEndTimeList()
outFilePeopleStartTimeList = fingerprintStartTimeInfo.Item(peopleName)
outFilePeopleEndTimeList = fingerprintEndTimeInfo.Item(peopleName)
'退勤時間を記録する
For j = 3 To 33
Cells(j, 4).Value = outFilePeopleStartTimeList(j - 3 + 1)
Cells(j, 5).Value = outFilePeopleEndTimeList(j - 3 + 1)
Next
'数式をTEXTへ転換 start
Range("G3:G33").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
'数式をTEXTへ転換 end
End If
Next
'★★★Operate Out ファイル 指紋情報記入 end★★★
GoTo endok
errl:
'異常処理
ERROR_FLG = "1"
ERROR_INFO_LIST.Add ("関数「writeFingerprintInfoToOutFile」で、エラー発生しました。")
ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)
endok:
End Sub
【框架代码】
1.处理流程
【框架代码】
2.变量定义
【框架代码】
3.具体处理
【框架代码】
4.bat定义
【框架代码】
5.Excel文件操作
└
5.1.具体业务流程(读取,写入文件)
└ 5.1.1.具体业务处理代码
6.目录结构,框架功能介绍
7.程序页面布局
创建成果物文件
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * '* * '* Out対象の全員シート作成 * '* 作成日:2017/08/13 * '* 作成者:sun * '* 更新日:2017/08/13 * '* 更新者:sun * '* * '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * Public Sub createOutFileAllSheets(outWb As Workbook) On Error GoTo errl '★★★Operate Out ファイル step1 start★★★ outWb.Activate outWb.Sheets("LIST").Select Dim peopleName As String Dim peopleNumber As String For i = 3 To 100 outWb.Sheets("LIST").Select peopleName = Cells(i, 3).Value peopleNumber = Cells(i, 2).Value If peopleName = Empty Then Exit For End If Sheets("000").Copy After:=Sheets(2 + (i - 3)) Sheets("000 (2)").Name = peopleNumber Sheets(peopleNumber).Select Range("C3").Value = peopleName 'KEY:peopleName, Value:peopleNumber peopleInfo.Add peopleName, peopleNumber Next Sheets("000").Select ActiveWindow.SelectedSheets.Delete '★★★Operate Out ファイル step1 end★★★ GoTo endok errl: '異常処理 ERROR_FLG = "1" ERROR_INFO_LIST.Add ("関数「createOutFileAllSheets」で、エラー発生しました。") ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description) endok: End Sub
读取数据(IN)
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * '* * '* Read IN 指紋情報取込 * '* 作成日:2017/08/13 * '* 作成者:sun * '* 更新日:2017/08/13 * '* 更新者:sun * '* * '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * Public Sub setFingerprintInfoIntoDictionary(wks As Worksheet) On Error GoTo errl '人たち毎月の情報 Dim peopleStartTimeList(31) As String Dim peopleEndTimeList(31) As String '★★★Read fingerprint INFO start★★★ For i = 0 To 31 peopleStartTimeList(i) = "" peopleEndTimeList(i) = "" Next Dim peopleName As String Dim peopleNumber As String Dim lastTimePeopleName Dim strDate Dim lastTimeStrDate lastTimeStrDate = "" strDate = "" lastTimePeopleName = "" peopleName = "" For i = 2 To 10000 '名前を取得する peopleName = wks.Cells(i, 1).Value If peopleName = Empty Then '該当人の出勤、退勤情報を保存する========================================start Dim varCurrentPeopleStartTimeList_lastOne(31) Dim varCurrentPeopleEndTimeList_lastOne(31) For j = 0 To 31 varCurrentPeopleStartTimeList_lastOne(j) = peopleStartTimeList(j) varCurrentPeopleEndTimeList_lastOne(j) = peopleEndTimeList(j) Next fingerprintStartTimeInfo.Add lastTimePeopleName, varCurrentPeopleStartTimeList_lastOne fingerprintEndTimeInfo.Add lastTimePeopleName, varCurrentPeopleEndTimeList_lastOne 'Erase peopleEndTimeList For k = 0 To 31 peopleStartTimeList(k) = "" peopleEndTimeList(k) = "" Next '該当人の出勤、退勤情報を保存する========================================end Exit For End If '日付を取得する strDate = wks.Cells(i, 3).Value '日付によって、時間保存のindexを算出する Dim strsDate() As String strsDate = Split(strDate, "/") dateIndex = strsDate(2) '人変化かどうか判断する If peopleName = lastTimePeopleName Then '日付変更かどうか判断する If strDate = lastTimeStrDate Then '当日、最後の時間は、退勤時間を保存する peopleEndTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value Else '初めて、日付け変化の場合、出勤時間です、出勤時間を保存する peopleStartTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value '(※:一日中、一回の記録のみの可能性があります、この場合、二つ時間が同じ) '最後の時間は、退勤時間を保存 peopleEndTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value End If Else '人変更、前回の人の出勤、退勤情報を保存する========================================start Dim varCurrentPeopleStartTimeList(31) Dim varCurrentPeopleEndTimeList(31) For j = 0 To 31 varCurrentPeopleStartTimeList(j) = peopleStartTimeList(j) varCurrentPeopleEndTimeList(j) = peopleEndTimeList(j) Next fingerprintStartTimeInfo.Add lastTimePeopleName, varCurrentPeopleStartTimeList fingerprintEndTimeInfo.Add lastTimePeopleName, varCurrentPeopleEndTimeList 'Erase peopleEndTimeList For k = 0 To 31 peopleStartTimeList(k) = "" peopleEndTimeList(k) = "" Next lastTimeStrDate = "" '前回の人の出勤、退勤情報を保存する========================================end '人変更の初回、人の出勤、退勤情報を保存する========================================start '日付変更かどうか判断する If strDate = lastTimeStrDate Then '当日、最後の時間は、退勤時間を保存する peopleEndTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value Else '初めて、日付け変化の場合、出勤時間です、出勤時間を保存する peopleStartTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value '(※:一日中、一回の記録のみの可能性があります、この場合、二つ時間が同じ) '最後の時間は、退勤時間を保存 peopleEndTimeList(Int(dateIndex)) = wks.Cells(i, 4).Value End If '次回人の出勤、退勤情報を保存する========================================end End If lastTimeStrDate = strDate lastTimePeopleName = peopleName Next '★★★Read fingerprint INFO end★★★ GoTo endok errl: '異常処理 ERROR_FLG = "1" ERROR_INFO_LIST.Add ("関数「setFingerprintInfoIntoDictionary」で、エラー発生しました。") ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description) endok: End Sub
写入数据(OUT)
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'* *
'* Write Out 指紋情報を出力対象に記入 *
'* 作成日:2017/08/13 *
'* 作成者:sun *
'* 更新日:2017/08/13 *
'* 更新者:sun *
'* *
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Public Sub writeFingerprintInfoToOutFile(outWb As Workbook)
On Error GoTo errl
'人たち毎月の情報
Dim peopleStartTimeList(31) As String
Dim peopleEndTimeList(31) As String
'★★★Operate Out ファイル 指紋情報記入 start★★★
outWb.Activate
outWb.Sheets("LIST").Select
For i = 3 To 100
outWb.Sheets("LIST").Select
peopleName = Cells(i, 3).Value
peopleNumber = Cells(i, 2).Value
If peopleName = Empty Then
Exit For
End If
Sheets(peopleNumber).Select
If fingerprintStartTimeInfo.exists(peopleName) Then
Dim outFilePeopleStartTimeList()
Dim outFilePeopleEndTimeList()
outFilePeopleStartTimeList = fingerprintStartTimeInfo.Item(peopleName)
outFilePeopleEndTimeList = fingerprintEndTimeInfo.Item(peopleName)
'退勤時間を記録する
For j = 3 To 33
Cells(j, 4).Value = outFilePeopleStartTimeList(j - 3 + 1)
Cells(j, 5).Value = outFilePeopleEndTimeList(j - 3 + 1)
Next
'数式をTEXTへ転換 start
Range("G3:G33").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
'数式をTEXTへ転換 end
End If
Next
'★★★Operate Out ファイル 指紋情報記入 end★★★
GoTo endok
errl:
'異常処理
ERROR_FLG = "1"
ERROR_INFO_LIST.Add ("関数「writeFingerprintInfoToOutFile」で、エラー発生しました。")
ERROR_INFO_LIST.Add ("エラー詳細:" & Err.Number & " : " & Err.Description)
endok:
End Sub
相关文章推荐
- VBA处理文件框架代码 【第五部分(5.1):具体业务】
- VBA处理文件框架代码 【第三部分:具体处理】
- VBA处理文件框架代码 【第五部分:Excel文件操作】
- VBA处理文件框架代码 【第二部分:变量定义】
- VBA处理文件框架代码 【第七部分:程序页面布局】
- VBA处理文件框架代码 【第六部分:目录结构,框架功能介绍】
- VBA处理文件框架代码 【第四部分:bat定义】
- 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍
- VBA处理文件框架代码 【第一部分:处理流程】
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本工作流部分业务处理界面与查看界面全新展示
- VS 应用中,部分文件中的代码无法折叠的处理方法(以ashx文件为例)
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本工作流部分业务处理界面与查看界面全新展示
- 在JavaScript中进行文件处理,第五部分:Blobs
- .NET快速信息化系统开发框架 V3.2->Web版本工作流部分业务处理界面与查看界面全新展示
- [置顶] 对AFN 进行进一步封装,再应用于具体的项目,这样可以将业务逻辑代码与网络框架进行解耦
- spring mvc框架整个执行过程,从输入http url,到action映射,再到action处理,返回jsp文件,解析jsp文件,然后渲染, 到返回给浏览器展示结果
- 安卓开发文件缓存方法的具体实现(参考代码)
- 做国际项目时候,处理翻译的国际化资源文件的java代码
- 遍历处理文件夹下所有.java文件代码左侧含有形如 /* 56 */注释的代码,并存到新的目录下
- Rollup处理并打包JS文件项目实例代码