大家好,今天我们就用上一篇文章中的VBA函数来完成一个简短的日历程序。

我们先上代码,然后再一点点去解析代码逻辑。

Sub 日历()Dim WkName As StringDim i, j, k, l As LongDim strStar As DateDim strEnd As DatestrStar = InputBox("日历编辑起始日期", "日历编辑", #1/1/2017#)If strStar <> False ThenstrEnd = InputBox("日历编辑终止日期", "日历编辑", #5/1/2017#)If strEnd <> False ThenWkName = WeekdayName(Weekday(Format(strStar, "yyyy/mm/dd")))Range("A1") = Year(strStar) & "年" & Month(strStar) & "月"Range("A1:G1").MergeRange("A1:G1").HorizontalAlignment = xlHAlignCenterRange("A2:G2") = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")For i = 3 To 1000t = Month(strStar)For j = 1 To 7For k = 1 To 7If WkName = Cells(2, k) ThenCells(i, k) = Day(strStar)Exit ForEnd IfNextstrStar = strStar + 1If strStar > strEnd ThenExit SubEnd IfWkName = WeekdayName(Weekday(strStar))l = Month(strStar)If l <> t Theni = i + 2Range("A" & i & ":G" & i) = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")Range("A" & i - 1) = Year(strStar) & "年" & Month(strStar) & "月"Range("A" & i - 1 & ":G" & i - 1).MergeRange("A" & i - 1 & ":G" & i - 1).HorizontalAlignment = xlHAlignCenterExit ForEnd IfIf k = 7 ThenExit ForEnd IfNextNextEnd IfEnd If
End Sub

首先,我们通过使用2次InputBox函数来获取起止日期。

WkName = WeekdayName(Weekday(Format(strStar, "yyyy/mm/dd")))

这行代码中用了Format函数,Weekday函数,WeekdayName函数。

在上一篇文章中我讲过,Format函数是用来进行日期格式化,WeekDay()函数返回一个从17的整数,表示指定日期的星期几。WeekDayName()函数返回指定日期的工作日名称。

那么上面那行代码最终的返回值是如:星期一;星期二这种形式。

Range("A1") = Year(strStar) & "年" & Month(strStar) & "月"

这行代码是使用Year函数和Month函数来获取输入日期的年和月。

这行代码的返回值如是:2017年1月。

Range("A2:G2") = Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")

在VBA中可以使用这种方式给连续区域的单元格赋值。这行代码是给A2,B2,C2,D2,E2,F2,G2这几个单元进行赋值。

Range("A1:G1").Merge

这行代码是将A1到G1这几个单元进行合并

Range("A1:G1").HorizontalAlignment = xlHAlignCenter

这行代码是将A1到G1的水平对齐的方式 设为居中对齐。

代码中的For循环部分就是一些较为简单的逻辑判断,就不再进行详述了。大家可以把代码复制到自己的工作表中进行单步调试。

VBA—EXCEL操作集合—07相关推荐

  1. VBA—EXCEL操作集合—03

    从现在开始,让我们来不断地认识EXCEL VBA中的部分事件.我们还是以具体功能为例来展开. 今天我们做一个很简单地抽奖游戏. 先来看截图: 游戏规则: 双击带有数字的单元格,如果中奖了,就显示中奖的 ...

  2. VBA—EXCEL操作集合—06

    大家好,今天我们来认识一些VBA的基础函数. InputBox函数 InputBox函数显示一个信息提示用户输入数据,这个对话框有两个按钮--"确定"和"取消" ...

  3. VBA—EXCEL操作集合—04

    大家好,我接着给大家去介绍VBA的一些小功能,希望对大家在平时的工作中能有所帮助. 我文章中的代码都是经过调试过的,复制过去是可以直接运行的,欢迎大家复制使用. 在我们实际工作中,经常要面临处理各种数 ...

  4. ChatGPT与VBA:Excel操作一键搞定的全能助手

    摘要 Excel是一款广泛应用于数据处理和分析的工具,而VBA(Visual Basic for Applications)是一种用于编程自动化Excel操作的语言.然而,对于非专业的Excel用户来 ...

  5. python win32com + VBA宏 操作Excel,清除Excel中的公式

    python win32com + VBA宏 操作Excel,清除Excel中的公式 最近有个需求是自动化清楚excel中的公式,尝试了使用openpyxl读取的时候不加载公式,但这样的结果是使用了公 ...

  6. Excel操作类-CSpreadSheet and BasicExcel

    Excel操作类-CSpreadSheet and BasicExcel CSpreadSheet - A Class to Read and Write to Excel and Text Deli ...

  7. Qt之excel 操作使用说明

    学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...

  8. vba excel 开发游戏_自动化神器—VBA

    VBA(Visual Basic For Application)是一种通用的自动化语言,它可以使Excel中常用的操作步骤自动化,还可以创建自定义的解决方案. VBA好比Excel的"遥控 ...

  9. 计算机一级excel0分,探究计算机一级Word和Excel操作自动评分的实现

    Word 和Excel 操作自动评分是计算机一级评分中的重要内容,计算机一级涉及考生多,实现公正客观的评分并不容易.在计算机一级评分过程中工作人员可以通过VBA 技术来实现对考生答案的自动评分.当前在 ...

最新文章

  1. 对话框窗口最大最小化
  2. Kotlin 学习笔记(八)—— Kotlin类与对象之接口
  3. Vue以CDN方式调用Swiper轮播异常
  4. OpenCV的图像处理——iOS与OpenCV之间图像转换
  5. 分析解决Java运行时异常
  6. 性能测试入门(二)转:JMeter基础之一 一个简单的性能测试
  7. Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round) 题解
  8. hanlp加载预训练模型
  9. JavaEE编码规范
  10. 怎样写一个具有异步交互的React组件的单元测试
  11. 在兼职的情况下,有什么办法可以在年底之前挣5000到一万块?
  12. 真正的正数、负数、整数等正则表达式,网上好多都是错的
  13. USB组合设备 Interface Association Descriptor (IAD)
  14. 电商金额计算的 4 个坑,千万注意了!
  15. c语言第十章课后作业答案,C语言练习题第十章
  16. 笔记--希尔伯特空间
  17. HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器
  18. postman中文汉化版
  19. Swift 基础 高阶函数 forEach filter map compactMap compactMapValues flatMap reduce sort sorted shuffled ...
  20. 嵌入式Linux:移植USB接口的RTL8188EUS、RTL8188ETV WIFI模块

热门文章

  1. 物联网——下一块大蛋糕
  2. linux config文件夹,[问题] .config文件在ubuntu的哪个文件夹中
  3. flash动画作品《童话》mtv_Pelephone翻唱版
  4. Windows11:如何下载Android源代码
  5. android 录音异常setAudioSource failed
  6. 用JAVA写一款自己的小游戏
  7. Java实现点击中文文字图片验证码
  8. Linux命令:ip
  9. 地铁用户体验问题之自动售票机(上篇)
  10. android计步器!30岁以后搞Android已经没有前途?再不刷题就晚了!