博客
关于我
Excel 2010 VBA 入门 054 Format函数对日期格式化
阅读量:217 次
发布时间:2019-02-28

本文共 2658 字,大约阅读时间需要 8 分钟。

示例:转换成英文日期

    如图所示,该表为某公司合同签订日期。现需要将合同签订日期转换成英文日期,该如何通过VBA批量实现?

姓名 合同签订日期 英文日期1 英文日期2 英文日期3
辛劭钧 2010/1/1 1 Jan 2010 1 January 2010 1st Jan,2010
林庆荣 2009/10/2      
许亚瑾 2010/1/11      
施佳翔 2007/12/21      
钟皓宇 2010/7/31      
李志仁 2008/1/22      
杨婉伶 2008/1/5      
林艺芳 2008/1/5      
陈俐宁 2009/11/15      
李冠霆 2009/12/8      
吕柏贤 2010/6/22      
杜金佳 2010/1/14      
林映君 2009/11/15      
陈柏勋 2009/12/8      
陈怡瑄 2010/1/14      
叶羽恬 2009/9/15      
王介廷 2009/9/25      
穆彦浚 2010/4/8      
洪亚菁 2010/3/5      
吴宗隆 2008/1/5      
余思宜 2010/7/20      
邱建霖 2008/1/5      
黄译庆 2010/3/5      
周逸宣 2010/6/22      
梁殷铨 2009/10/31      
李晏庭 2009/10/18      
曹贤德 2009/11/15      
张政 2010/7/2      
杨智玮 2009/10/20      
陈伯伦 2010/1/14      
柯雅文 2010/5/9      
陈韦志 2010/6/5      

 

实现代码

Option ExplicitSub 转换英文日期()    Dim RowN As Long    Dim dDate As Date    For RowN = 2 To Cells(Rows.Count, "A").End(xlUp).Row        dDate = Cells(RowN, "B").Value        Cells(RowN, "C").Value = "'" & CStr(Format(dDate, "d MMM YYYY"))        Cells(RowN, "D").Value = "'" & CStr(Format(dDate, "d MMMM YYYY"))        Select Case Day(dDate)            Case 1, 31                Cells(RowN, "E").Value = Format(dDate, "d""st"" MMMM,YYYY")            Case 2                Cells(RowN, "E").Value = Format(dDate, "d""nd"" MMMM,YYYY")            Case 3                Cells(RowN, "E").Value = Format(dDate, "d""rd"" MMMM,YYYY")            Case Else                Cells(RowN, "E").Value = Format(dDate, "d""th"" MMMM,YYYY")        End Select    NextEnd Sub

Format函数

Format函数可以用来对数字、日期、文本进行格式化,并返回格式化后的结果。其语法

Format(expression [,format[,firstdayofweek[,firstweekofyear ]

其中,参数expression为被格式化的数字、日期或文本表达式。参数format为格式表达式。关于日期和时间的格式设置,见表。

        Format函数的format参数关于日期和时间的设置

    字  符

    说  明

(:)

  时间分隔符

(/)

  日期分隔符

d

  将天显示为不带前导零的数字(例如,1)

d

  将天显示为带—个前导零的数字(例如,01)

ddd

  将天显示为缩写(例如,Sun)

dddd

  将天显示为全名(例如,Sunday)

M

  将月显示为不带前导零的数字(例如,一月表示为1)

MM

将月显示为带一个前导零的数字(例如,01/12/01)

MMM

将月显示为缩写(例如,Jan)

MMMM

将月显示为完整的月份名称(例如,January)

h

使用12小时制时钟将小时显示为不带前导零的数字(例如,1:15:15PM)

hh

使用12小时制时钟将小时显示为带前导零的数字(例如,01:15:15PM)

H

使用24小时制时钟将小时显示为不带前导零的数字(例如,1:15:15)

HH

使用24小时制时钟将小时显示为带前导零的数字(例如,01:15: `5)

m

将分钟显示为不带前导零的数字(例如,12:1:15)

mm

将分钟显示为带前导零的数字(例如,12:01:15)

s

将秒显示为不带前导零的数字(例如,12:15:5)

ss

将秒显示为带前导零的数字(例如,12:15:05)

yy

以带一个前导零的两位数字格式显示年(例如,09)

yyyy

以四位数字格式显示年(例如,2009)

参数firstdayofweek表示以哪一天作为一周的开始。

参数firstweekofyear表示以何种设置为标准表示每年的一周开始。

特殊的英文格式日期

    Format函数的功能虽然强大,但是无法将数字转换为序数词。因而本例中,使用了SelectCase分支结构,对日期进行分组判断,从而根据实际情况设置不同的序数词。

使用DatePart函数获取日期信息

DatePart函数可以获取日期或者时间中的某个信息,其语法为

DatePart(interval,date[,firstdayofweek[,firstweekofyear]])

参数interval为一个文本,表示需要获取的信息,可以为下表中的任意一个字符。

参数设置

    Date参数范围

yyyy

q

季度

m

y

三个参数均表示天,实质是一致的

y表示1年中的天数

d表示天

w表示1周中的天数

d

w

ww

h

小时

n

分钟

s

  • 参数date为一个日期表达式。
  • 参数firstdayofweek表示以哪一天作为一周的开始,其值可以为表3-6中的任意常量。
  • 参数firstweekofyear表示每年的一周开始以何种设置为标准。

    以上函数可以返回一个日期信息,若要得知当前是一年中的第几个季度时,可以使用以下表达式获取:

DatePart("q",Date)

 

 

转载地址:http://lywi.baihongyu.com/

你可能感兴趣的文章
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>