VBA—EXCEL操作集合—07
大家好,今天我们就用上一篇文章中的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()
函数返回一个从1
到7
的整数,表示指定日期的星期几。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相关推荐
- VBA—EXCEL操作集合—03
从现在开始,让我们来不断地认识EXCEL VBA中的部分事件.我们还是以具体功能为例来展开. 今天我们做一个很简单地抽奖游戏. 先来看截图: 游戏规则: 双击带有数字的单元格,如果中奖了,就显示中奖的 ...
- VBA—EXCEL操作集合—06
大家好,今天我们来认识一些VBA的基础函数. InputBox函数 InputBox函数显示一个信息提示用户输入数据,这个对话框有两个按钮--"确定"和"取消" ...
- VBA—EXCEL操作集合—04
大家好,我接着给大家去介绍VBA的一些小功能,希望对大家在平时的工作中能有所帮助. 我文章中的代码都是经过调试过的,复制过去是可以直接运行的,欢迎大家复制使用. 在我们实际工作中,经常要面临处理各种数 ...
- ChatGPT与VBA:Excel操作一键搞定的全能助手
摘要 Excel是一款广泛应用于数据处理和分析的工具,而VBA(Visual Basic for Applications)是一种用于编程自动化Excel操作的语言.然而,对于非专业的Excel用户来 ...
- python win32com + VBA宏 操作Excel,清除Excel中的公式
python win32com + VBA宏 操作Excel,清除Excel中的公式 最近有个需求是自动化清楚excel中的公式,尝试了使用openpyxl读取的时候不加载公式,但这样的结果是使用了公 ...
- Excel操作类-CSpreadSheet and BasicExcel
Excel操作类-CSpreadSheet and BasicExcel CSpreadSheet - A Class to Read and Write to Excel and Text Deli ...
- Qt之excel 操作使用说明
学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...
- vba excel 开发游戏_自动化神器—VBA
VBA(Visual Basic For Application)是一种通用的自动化语言,它可以使Excel中常用的操作步骤自动化,还可以创建自定义的解决方案. VBA好比Excel的"遥控 ...
- 计算机一级excel0分,探究计算机一级Word和Excel操作自动评分的实现
Word 和Excel 操作自动评分是计算机一级评分中的重要内容,计算机一级涉及考生多,实现公正客观的评分并不容易.在计算机一级评分过程中工作人员可以通过VBA 技术来实现对考生答案的自动评分.当前在 ...
最新文章
- 对话框窗口最大最小化
- Kotlin 学习笔记(八)—— Kotlin类与对象之接口
- Vue以CDN方式调用Swiper轮播异常
- OpenCV的图像处理——iOS与OpenCV之间图像转换
- 分析解决Java运行时异常
- 性能测试入门(二)转:JMeter基础之一 一个简单的性能测试
- Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round) 题解
- hanlp加载预训练模型
- JavaEE编码规范
- 怎样写一个具有异步交互的React组件的单元测试
- 在兼职的情况下,有什么办法可以在年底之前挣5000到一万块?
- 真正的正数、负数、整数等正则表达式,网上好多都是错的
- USB组合设备 Interface Association Descriptor (IAD)
- 电商金额计算的 4 个坑,千万注意了!
- c语言第十章课后作业答案,C语言练习题第十章
- 笔记--希尔伯特空间
- HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器
- postman中文汉化版
- Swift 基础 高阶函数 forEach filter map compactMap compactMapValues flatMap reduce sort sorted shuffled ...
- 嵌入式Linux:移植USB接口的RTL8188EUS、RTL8188ETV WIFI模块