[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本人不建议用脚本语言处理,这样大数据的运算,效率太慢了,我可以用VBS的老大,VB程序给你做
效率快N倍,需要VB的,可以联系本人QQ 251838045,
以下提供vbs(部分)代码。
dim a()
set obshell=wscript.createobject("wscript.shell")
xls=obshell.CurrentDirectory & "\源文件.xls"
Set VbExcel1 = CreateObject("Excel.Application") '创建excel对象
   VbExcel1.Visible = False '对象不可见
   VbExcel1.DisplayAlerts = False '关闭时不提示保存
VbExcel1.Workbooks.Open (xls)
VbExcel1.Sheets(1).Select
  Set vbbook1 = VbExcel1
Trows1 = VbExcel1.ActiveSheet.UsedRange.Rows.Count 'Excel表格指定表的总列数带入变量 Trows
   Tcols1 = VbExcel1.ActiveSheet.UsedRange.Columns.Count 'Excel表格指定表的总行数带入变量 Tcols
'msgbox trows1 & " " & tcols1
'以不同员工名定义数组元素
n=0
redim preserve a(n)
a(0)=vbbook1.cells(2,3).value
'循环表格每条数据与新数组的每个元素进行对比判断
for i = 3 to trows1
for j= 0 to ubound(a)
sb=true
'msgbox vbbook1.cells(i,3).value & "," & a(j)
if vbbook1.cells(i,3).value<>a(j) then
sb=true  
else sb=fasle
exit for
end if
next
'若没发现新的数组里,有重名,就增加一人的姓名到新的数组里!
if sb=true then
n=n+1
redim preserve a(n)
a(n)=vbbook1.cells(i,3).value
msgbox n& " " &a(n)
end if
next
'循环列出分别每个人的相关打卡数据
for j= 0 to ubound(a)
msgbox a(j)
for i = 2 to trows1
if vbbook1.cells(i,3).value=a(j) then
ddate=year(vbbook1.cells(i,7).value) & "-" & month(vbbook1.cells(i,7).value) & "-" & day(vbbook1.cells(i,7).value)
msgbox  a(j) & cdate(ddate) & GetWeek(cdate(ddate))
end if
next
next
'显示星期几的函数
Public Function GetWeek(ChkDate)
   GetWeek = WeekdayName(Weekday(ChkDate)) '得知某天星期几
End Function

读取你的源xls
https://shop116026742.taobao.com/,专业程序接单!谢谢!

TOP

返回列表