Excel VBA之函数篇-3.22 轻松转换单元格格式
前景提要
最近在工作的时候,经常碰到不少的同事跑过来让我帮忙看看单元格的格式之类的修饰问题,其实这也算是大家日常工作中比较常见的操作,因为不同的工作环节不同的要求,就算是相同的数据,大家对于展示上面的需求也是不尽相同的,很多人在这个时候就会说,你可以选择单元格右键,然后他们要单元格的格式就可以了。
确实,有一些格式是完全可以通过这里来实现的,但是我如果给你一些这里没有的场景展示需求,你能够用这个功能来实现嘛?
很明显不能,这里只有几个常用的现成的格式展示,对于一些特殊需求的格式,这里是没有办法实现的,那么小编是如何实现的呢?很简单,用VBA函数
函数说明
说到格式,首选就是format,他是VBA中格式功能最强大的函数,他能够实现很明我们右键无法实现的需求,比方说让你结算出这个日期是今年的第几周,让你将这个时间用中文星期展示,英文星期展示,你可以嘛?一些常用公式你可能理解,但是不常用的呢?说了那么多,我们还是来学习下format这个函数吧。
场景说明
今天我就将小编日常工作中被人骚扰的问题汇总出来给大家分享下,希望能够帮助到大家日后的一些工作
1.人民币单位
很多的单位在统计数据的时候,都会在总金额的前面加上金额的单位名称,国内通用的当然是人民币了,那么如何实现呢?
Sub test()
Dim i&
For i = 6 To 10
Cells(i, 4).Offset(0, 1) = Format(Cells(i, 4), "Currency")
Next i
End Sub
我们来看看结果,是不是成功的在所有的数字前面都增加了一个人民币的标识,并且后面增加了两位小数点,这样更加的专业,在很多的外资企业做表格的时候经常会有这样的要求
2.不需要增加人民币的标识,但是我想要上面人民币的那样的格式,如何实现呢?
Sub test()
Dim i&
For i = 6 To 10
Cells(i, 4).Offset(0, 1) = Format(Cells(i, 4), "Standard")
Next i
End Sub
来看看效果,是不是非常完美的满足了要求呢?
3.我想要知道这个日期是一周的周几
这个问题肯定难倒了一大篇人,当然不包括小编,哈哈
Sub test()
Dim i&
For i = 6 To 10
Cells(i, 4).Offset(0, 1) = Format(Cells(i, 4), "w") - 1
Next i
End Sub
来看看看效果
都是正确的,完美,不过这里小编要强调一点,如果想要转化成为周几的话,这里我们需要注意到后面要-1,为什么呢,因为这里是按照西方的算法的,西方的算法,周日是1,而我们中国人的算法,周一才是1,所以这里我们要-1,才算是符合我们中国人的习惯,这点在使用的时候要留意哦。
4.一年的第几周
这也是头疼的问题你你要说算这是第几季度的话,我还可以通过月份来判断,你要算第几周,真的是为难我了,当然我就一点都不为难。
Sub test()
Dim i&
For i = 6 To 12
Cells(i, 4).Offset(0, 1) = Format(Cells(i, 4), "ww") - 1
Next i
End Sub
来看看效果,为了能够更好的验证效果,我们增加两个日期,1-1和1-7,看看结果。
1-1是0,那就是说判断的方法是从0开始的,并不是从1开始的,那个1-7就是今年的第二周,结果的第一周,大家在使用的时候,也可以选择上面一个案例一样的方法,通过在结尾+1的方式来得到最终的结果,这是通过前后两个对比,让大家能够更加清楚的理解这一点。