|
日期格式需要处理一下,同时考勤时间里有空记录,所以代码也要做一下容错处理。
不同班次的判断条件,可以根据实际情况,你自己调整一下。
- function 识别班次() {
- const awf = Application.WorksheetFunction;
- const db = Range("A1").CurrentRegion.Columns("A:C")().slice(1);
- const res = [];
- const day = (d) => awf.Text(d, "dd");
- db.forEach((r, i) => {
- let arr = r[2]?.split(";").map(x => x.replace(/:/g, ""));
- let str = "";
- if (r[2]?.length) {
- arr.forEach(y => {
- if (y <= 80000 && y > 70000) {
- str += `+${day(r[0])}日早班上班卡`;
- } else if (y <= 160000 && y > 150000) {
- str += `+${day(r[0])}日中班上班卡`;
- } else if (y <= 180000 && y > 160000) {
- str += `+${day(r[0])}日早班下班卡`;
- } else if (y <= 240000 && y > 230000) {
- str += `+${day(r[0])}日晚班上班卡`;
- } else if (y <= 10000 && y > 0) {
- try {
- if (db[i + 1][1] == r[1]) str += `+${day(db[i + 1][0])}日中班下班卡`;
- } catch { }
- } else if (y <= 90000 && y > 80000) {
- try {
- if (db[i + 1][1] == r[1]) str += `+${day(db[i + 1][0])}日晚班下班卡`;
- } catch { }
- } else {
- str += `+[${awf.Text(y, "#:##:##")}]`;
- }
- });
- }
- res.push([str.replace("+", "")]);
- });
- Range("D2").Resize(res.length, 1).Value2 = res;
- }
复制代码 |
|