首页 > 软件 > vbs可以写一个自动排班吗。或者vba也可以

vbs可以写一个自动排班吗。或者vba也可以

软件 2023-06-04

EXCEL中用VBA实现自动排班,通过选择年月就能自动显示每月值班信息。

无论你身居企业还是行政事业单位,值班那是必须的!特别是如果你是一办公室的负责人,排列值班表的任务就自然落到了你的身上了。通常情况下,值班的领导为1-2人,值班的工作人员为2-4人,排列组合的结果就有很多了!当然,如果你的单位只有2-5人,就算是手动排列也花不了多少时间,要是有100人呢?排列的规则不同,自然排出的值班表就各不相同,本文旨在研究方法,并非一一枚举有多种排列,或许可以对你的工作有所启发!

数据表格设计本文采用EXCeL来做,标题设为【泊梁山甲午年五虎上将、天罡地煞轮流值班表】,表头在第三,分别为【日期、带班领导、值班人员、标志、备注】!

值班规则约定五虎上将:共5人,每1人负责值班一周,依次轮流;天罡地煞:共20人,每2人负责值班一周,依次轮流。遇周末(周六、周日)所有人员休息,值班的人不休息,反过来理解也行,即当班人的人员不去打战而休整……遇节假日值班人也不休息,即没有机会外出考察观光了……又遇周末并且没时间出去考察的就大碗吃肉喝酒吧!详细说明见如程序实现思路!


Subtest()

DimshtAsWorksheet,Lead(5),Under(10),Holidays(30),Job(10),Weeks,R%,C%,DaiBan$,ZhiBan$

Setsht=ThisWorkbook.Sheets(1)

Lead(1)="林冲"

Lead(2)="卢俊义"

Lead(3)="吴用"

Lead(4)="关胜"

Lead(5)="公孙胜"


Under(1)="秦明呼延灼"

Under(2)="花荣柴进"

Under(3)="李应朱仝"

Under(4)="鲁智深武松"

Under(5)="董平扬志"

Under(6)="戴宗刘唐"

Under(7)="李逵扈三娘"

Under(8)="雷横顾大嫂"

Under(9)="时迁孙二娘"

Under(10)="阮小二潘金莲"

Holidays(1)=#4/5/2014#

Holidays(2)=#4/6/2014#

Holidays(3)=#4/7/2014#

Holidays(4)=#5/1/2014#

Holidays(5)=#5/2/2014#

Holidays(6)=#5/3/2014#

Holidays(7)=#5/31/2014#

Holidays(8)=#6/1/2014#

Holidays(9)=#6/2/2014#

Holidays(10)=#9/6/2014#

Holidays(11)=#9/7/2014#

Holidays(12)=#9/8/2014#

Holidays(13)=#10/1/2014#

Holidays(14)=#10/2/2014#

Holidays(15)=#10/3/2014#

Holidays(16)=#10/4/2014#

Holidays(17)=#10/5/2014#

Holidays(18)=#10/6/2014#

Holidays(19)=#10/7/2014#

Job(1)=#5/4/2014#

Job(2)=#9/28/2014#

Job(3)=#10/11/2014#

sht.Range(sht.Cells(4,1),sht.Cells(65535,4)).ClearContents

ForWeeks=#3/31/2014#To#12/31/2014#

R=sht.[A65536].End(xlUp).Row+1

sht.Cells(R,1)=Weeks

IfDateDiff("d",#3/31/2014#,Weeks)Mod7=0Then

DaiBan=Lead(DateDiff("d",#3/31/2014#,Weeks)Mod5+1)

ZhiBan=Under(DateDiff("d",#3/31/2014#,Weeks)Mod10+1)

sht.Cells(R,2)=DaiBan

sht.Cells(R,3)=ZhiBan

Else

sht.Cells(R,2)=DaiBan

sht.Cells(R,3)=ZhiBan

EndIf

IfWeekday(Weeks)=7OrWeekday(Weeks)=1Thensht.Cells(R,4)="▲"

ForC=1ToUBound(Holidays)

IfHolidays(C)=WeeksThensht.Cells(R,4)="●"

If(Weekday(Weeks)=7OrWeekday(Weeks)=1)AndHolidays(C)=WeeksThensht.Cells(R,4)="■"

Next

IfWeeks=Job(1)OrWeeks=Job(2)OrWeeks=Job(3)Thensht.Cells(R,4)="○"

Next

EndSub

vbs里面可以嵌套vba吗

不可以。 所谓vba,指的是Office应用软件里的VB编程,这个a指的就是application(应用)。vba跟应用软件绑定,只能在应用软件中运行,可以通过应用软件提供的VBE(VB编辑器)来编程。 而VBS,只要在windows上都能直接双击运行,不依赖应用软件,只依赖Windows上的VBS脚本宿主。 虽然非常相似,但他们在某些方面有着不同的语法。

VBS和VBA区别

vba相当是要挂在某一软件里的vb,依存于某软件,比如excel autocad等,不需编译,不能独立运行。主要是解决excel autocad自己的事情用的。 vbs语法基于vb,宿主(host)解释,不需编译。可以在微软的桌子上就可以运行(桌面就是宿主,可以用记事本写几行代码,存成.vbs就可以运行)比如你要搞一个安装文件,自动设置一下电脑等,当然嵌在网页里面就使网页一下高大上。 其实用好了都比较强大,虽然比不上高大上的其他语言。语法上两者也比较接近。 可以找个教程粗略看一下,再搜点例子看。

VB和VBA详细的区别?都用在什么地方?

首先VBS不应该和VB、VBA放在一起比较,它是微软按照自己定义的ActiveX Scripting规范完全从头开始写成的脚本语言,虽然它的语法结构和VB非常相似,但VBS仅仅依靠自动化对象来扩充其功能(只有后期绑定),它不能用implements来实现接口,不可能在VBS里直接使用API,没有VarPtr这样能得到指针的函数,而VBS缺少的这些功能正是VB和VBA所特有的。当然,这不是说VBS不如VB或VBA,Windows已经为VBS提供了足够强大的功能,我们可以用VBS来做脚本COM组件,而且借自动化对象的能力VBS可以说能力无限,所以有病毒用VBS来写,对程序员来说VBS最重要的功能莫

VBS和VBA的不同

VBScript(Microsoft Visual Basic Script Edition),也缩写为VBS.,微软公司可视化BASIC脚本版).语法基于Basic. 脚本语言,在网页中用的较多。 Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。在office中应用较多。

标签:vba MicrosoftOffice 信息技术 MicrosoftExcel vbs

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18