用VB语言在EXCEL中写按出生日期判断星座!

其实最简单的思路应该是把生日的年份信息去掉(比如A1)(全部统一为1900,用函数date(0,month(A1),day(A1)),然后用星座划分日期(比如水瓶座1)。以前网上很多句子都是用这个思路查星座的。

但是这种方法有一个隐藏的bug:闰年。闰年的星座分割日在3月以后会增加1。隐藏的bug是大忌!如果有人调用你的函数,总会出现不规则的错误,有时候你发现不了问题,就是因为你的函数有这个隐藏的bug。

为了绕过闰年的bug,我写了下面这个函数,直接模仿人肉查询月日的过程。

当然也有一些可以优化的地方。比如月份的数组,因为维度和内容相同,可以直接优化;例如,最终的if语句结构可以替换为iif语句。但这些都是细节。为了更好的体现编程思路,我们就不做这些“巧妙”的优化了。

字符串形式的星座函数(x表示日期)

Dim XZ(12)作为字符串

Dim Yue(12)作为长

Dim Ri(12) As Long

XZ(0) = "摩羯座"

XZ(1) = "水瓶座"

XZ(2) = "双鱼座"

XZ(3) = "白羊座"

XZ(4) =“金牛座”

XZ(5) =“双子座”

XZ(6) =“癌”

XZ(7) =“狮子座”

XZ(8) =“处女座”

XZ(9) =“天秤座”

XZ(10) = "天蝎座"

XZ(11) =“射手座”

XZ(12) = "摩羯座"

岳(1) = 1

岳(2) = 2

岳(3) = 3

岳(4) = 4

岳(5) = 5

岳(6) = 6

岳(7) = 7

岳(8) = 8

岳(9) = 9

岳(10) = 10

岳(11) = 11

岳(12) = 12

Ri(1) = 20

Ri(2) = 19

Ri(3) = 21

Ri(4) = 20

Ri(5) = 21

Ri(6) = 22

Ri(7) = 23

Ri(8) = 23

Ri(9) = 23

Ri(10) = 24

Ri(11) = 23

Ri(12) = 22

m =月(x)

d =天(x)

如果d & lt日(曰(米))然后

星座运势= XZ(岳(m) - 1)

其他

星座运势= XZ(月(米))

如果…就会结束

结束功能