首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取上一个工作日的VBA

VBA(Visual Basic for Applications)是一种基于Microsoft Visual Basic的宏语言,用于在Microsoft Office应用程序中编写自定义宏和脚本。VBA可以帮助用户自动化执行各种任务,提高工作效率。

获取上一个工作日的VBA可以通过以下代码实现:

代码语言:vba
复制
Function GetPreviousWorkday(currentDate As Date) As Date
    Dim previousDate As Date
    
    ' 判断当前日期是否为周末(周六或周日)
    If Weekday(currentDate) = vbSaturday Or Weekday(currentDate) = vbSunday Then
        ' 如果是周六,则上一个工作日为当前日期减去1天
        If Weekday(currentDate) = vbSaturday Then
            previousDate = currentDate - 1
        ' 如果是周日,则上一个工作日为当前日期减去2天
        ElseIf Weekday(currentDate) = vbSunday Then
            previousDate = currentDate - 2
        End If
    Else
        ' 如果当前日期不是周末,则上一个工作日为当前日期减去1天
        previousDate = currentDate - 1
    End If
    
    GetPreviousWorkday = previousDate
End Function

上述代码定义了一个名为GetPreviousWorkday的函数,该函数接受一个日期参数currentDate,并返回上一个工作日的日期。

使用该函数可以通过以下方式获取上一个工作日的日期:

代码语言:vba
复制
Sub Test()
    Dim currentDate As Date
    Dim previousWorkday As Date
    
    currentDate = Date ' 获取当前日期
    previousWorkday = GetPreviousWorkday(currentDate) ' 获取上一个工作日的日期
    
    MsgBox "上一个工作日的日期为:" & previousWorkday
End Sub

这段代码首先获取当前日期,然后调用GetPreviousWorkday函数获取上一个工作日的日期,并通过消息框显示出来。

该VBA代码适用于Microsoft Office应用程序,如Excel、Word、PowerPoint等。通过将代码插入到宏中,可以在需要的时候调用该宏来获取上一个工作日的日期。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL 获取上一个订单状态

t_order 表中增加一列 last_id,用于展示上一个状态为“成功”订单 id,若找不到符合条件订单,则 last_id 为 NULL。...,相对于当前订单上一个订单”是依据创建时间来选择,而不是主键。...暂时假设 t_order 中每个用户订单创建时间对应着主键单调递增,那我们就可以说最靠近当前订单创建时间记录就是要锁定上一个订单。...要得到当前订单上一个状态为“成功”订单,可使用下面的 SQL 获取: SELECT MAX(id) FROM t_order WHERE is_suc = 1 AND uid = 当前订单所属用户...有的订单创建得比较早,但是进入到数据库比较晚,因此就会出现在两条订单记录中,ID 较小记录创建时间比 ID 大记录创建时间还要晚情况。如果是这种情况,就不能应用上面的 SQL 。

1.3K20
  • 一次工作日获取技巧记录

    一次工作日获取技巧记录 前言 工作日获取还是比较常见,比如银行和跨境电商交易,有时候在教育行业也会有用到,由于我们不知道每一年那一天是节假日,有时候涉及调休等等又要上班比较麻烦,所以这里干脆做一次记录...注意,本文使用是「PostgreSql数据库」,使用其他数据库需要略微修改sql内容。 日期表设计 日期表设计不是固定,下面的内容其实都是供参考使用。...last_year_last_date)), '1 d' ) as day ) as tt ) as a; 案例:获取几天前工作日...由于个人使用经验也不是十分丰富,所以这里记录个人最近接触到一个使用案例,下面的案例是使用row_number()来获取多少个日之前工作日,根据下面的sql语句我们可以轻松完成多少个日之前工作日...-1,后一天工作日为+1等等内容。

    74020

    VBA获取连接wifi密码

    电脑或手机既然能够自动连接已经连接过wifi,说明密码已经被保存起来了,只是一般情况下我们不知道如何找到这个保存文件,最近发现一个使用cmd命令获取保存wifi密码功能,但是cmd命令毕竟不熟悉,...不过VBA能够和cmd命令交互,所以使用VBA把cmd命令封装起来,使用起来就方便多了。...又想到VBS直接双击就能运行便捷,而且语法和VBA几乎一样,就又小改一下做成了个VBS,直接双击就可以了,效果: ? 这里就直接贴代码,原理其实我也没怎么去研究!...End If End If End Function Function GetWifiPassword(sWIFI, retPassword) Dim ret '获取连接...)) If InStr(ret, "SSID") Then If InStr(ret, ": ") Then '获取连接

    1.4K20

    获取上下一个工作日实践

    获取上下一个工作日实践 前言 其实这个文章个人之前有进行过发布和讨论,在上一篇文章中,介绍了如何通过postgresql数据库sql语句构建一个工作日表,并且介绍如何使用sql语法获取某一天往前或者往后工作日或者自然日...本次实践只是个人提供一个工作日获取解决方案,如果有更好解决方案欢迎讨论和分享。...表设计 首先这里依然先回顾一下这个工作日获取表结构: -- ---------------------------- -- Table structure for sa_calendar_table...获取某一天上一个工作日或者下一个工作日,或者获取自然日 获取工作日sql 首先我们需要根据当前天数获取某一天工作日列表: SELECT * FROM ( SELECT...,这里我们通过0获取到当天,如果是+1则是下一天,而如果是-1则是上一天,如果是工作日,则对于数据进行判断,,根据这样规则,下面我们便可以使用代码来实现: 下面是获取下一天工作日处理,获取下一天代码如下

    75910

    ThinkPHP中获取指定日期后工作日具体日期方法

    思路: 1、获取到查询年份内所有工作日数据数组 2、获取到查询开始日期在工作日索引 3、计算需查询日期索引 4、获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday...$number_wk = date("w", $strap); //获取数字对应星期 return $number_wk; //自定义星期数组 //$weekArr = array("星期日", "...星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); //获取数字对应星期 //return $weekArr[$number_wk]; } /** * 获取指定日期段内每一天日期...1) { }*/ $_ret && $count++; unset($_date, $_post_data, $_ret_curl, $_ret); } return $count; } /** * 获取当年所有工作日...array_search(date('Ymd', strtotime($startdate)), $workDays); if ($search_key === false) {//查询日期为非工作 //获取查询日期前最近工作日

    1.9K20

    VBA小技巧04:使用VBA获取能够打开指定文件EXE程序

    这是一个很有趣技巧!可以通过你给定文件名来获取计算机中可以打开该文件EXE程序,即可执行程序。有时候,我们可能真的需要找到可以打开指定文件名EXE程序,然后打开它。...或者,要看看计算机中是否有可以打开指定文件名EXE程序,然后好决定做下一步操作。...实现获取计算机中可以打开指定文件EXE程序代码: 'API声明 Declare Function FindExecutable Lib"shell32.dll" Alias "FindExecutableA...strExePath = Left$(strExePath, InStr(strExePath, Chr$(0)) - 1) ExePath = strExePath End Function 现在,我们要获取能够打开代码所在工作簿...也可以指定一个文件来获取其EXE程序,例如: MsgBox ExePath(ThisWorkbook.FullName) 运行后结果如下图2所示。 ?

    2.9K20

    VBA高级筛选技巧:获取唯一值

    标签:VBA,AdvancedFilter方法 在处理大型数据集时,很可能需要查找并获取唯一值,特别是唯一字符串。...在VBA中,AdvancedFilter方法是处理这种情形非常强大一个工具。该方法可以保留原数据,采用基于工作表条件,可以找到唯一值。下面,将详细介绍如何获取并将唯一值放置在单独地方。...设置要筛选单元格区域 AdvancedFilter方法对Range对象进行操作。接通常做法,设置单元格区域,但要注意,VBA始终将第一行视为包含标题行。...如果输出区域太小,无法包含所有结果,VBA将溢出该区域。这意味着无法限制输出,因此要选择一个没有值或可以覆盖原有值列。...另一个需要注意是,如果要筛选数据中有两列具有相同标题,xlFilterCopy可能会将具有该名称第一列复制两次到目标列(CopyToRange)。

    8.3K10

    VBA: 获取电脑当前默认打印机名称

    借助Application.ActivePrinter属性,一方面可以查询当前默认打印机名称,另一方面,也可以指定默认打印机名称。...Application.ActivePrinter = Printer_original End Sub 该代码主要分为三步:(1)先记录当前默认打印机名称,一般电脑默认连接是实体打印机...;(2)借助Printout函数将指定Excel文件转换为PDF文件,此时默认打印机名称已经发生变化,转变成了Microsoft Print to PDF; (3)恢复默认打印机,也就是第(1)步保存打印机名称...参考资料: [1] Application.ActivePrinter property(https://docs.microsoft.com/en-us/office/vba/api/excel.application.activeprinter...) 延伸阅读: [1] VBA: Excel文件批量转化为pdf (2)

    2.4K20
    领券