楼主 水星钓鱼 |
如图所示:A1单元格是个标准的日期时间格式(可被Excel识别),B1单元格是用文本形式输入的日期,C1单元格的公式是- =A1<B1
目前C1单元格的结果是True,逻辑上A1应该是大于B1的。 现在假设A1单元格内容不变,B1单元格的内容用VBA代码生成,如何判断这两个时间的逻辑大小(返回FALSE) 前期代码我已经写好了,请补充注释下的代码
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
-
- End Sub
1.可以凭直觉写下尚未调试的代码看是否正确2.不能再增加中间变量 3.正确答案加魅力值1分,优秀答案加魅力值5分。 附件如下:
VBA练习01【日期时间比大小】.rar
|
2楼 天南地北 |
是这样么?
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
- Dim oV3 As Date
- oV3 = oV2
- Cells(1, 3) = oV1 < oV3
- End Sub
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
- Cells(1, 3) = oV1 < CDate(oV2)
- End Sub
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
- Cells(1, 2) = oV2
- Cells(1, 3) = oV1 < Cells(1, 2)
- End Sub
|
3楼 0Mouse |
是要求用vba把两个日期的比较结果写入C1?
- Range("C1").Value = oV1 < CDate(oV2)
|
4楼 windimi007 |
- MsgBox oV1 < CDate(oV2)
|
5楼 windimi007 |
- MsgBox oV1 < DateValue(oV2) + TimeValue(oV2)
|
6楼 wise |
请查看:
- [C1] = (oV1 < CDate(oV2))
|
7楼 wjc2090742 |
- If TimeValue(oV2) + DateValue(oV2) > oV1 Then MsgBox oV2 & ">" & oV1 Else MsgBox oV1 & "大等于" & oV2
|
8楼 windimi007 |
- MsgBox oV1 < DateAdd("d", 1, oV2) - 1
|
9楼 windimi007 |
再来个和8楼差不多的哈!
- MsgBox oV1 < DateAdd("d", -1, DateAdd("d", 1, oV2))
|
10楼 hustclm |
- MsgBox oV1 < Replace(oV2, "-", "/")
|
11楼 amulee |
在中国,这个表达式没有问题
- MsgBox oV1 < CDate(oV2)
如果其他语言系统,有可能有问题。时间和日期最保险的做法是用DateSerial生成。 CDate会根据控制面板中的设置将日期转换,若某个国家日期格式是"YYYY-D-M H:S"(我也不知道哪个国家,别问我),那么就可能会有问题。如果假设你给出的表达式是“YYYY-M-D H:S”格式的,那么比较好的做法是如下的做法。
- MsgBox oV1 < DateSerial(Split(Split(oV2, " ")(0), "-")(0), _
- Split(Split(oV2, " ")(0), "-")(1), _
- Split(Split(oV2, " ")(0), "-")(2)) + _
- TimeSerial(Split(Split(oV2, " ")(1), ":")(0), _
- Split(Split(oV2, " ")(1), ":")(1), 0)
|
12楼 oldyuan |
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
- Cells(1, 3) = oV1 < CDate(oV2)
- End Sub
|
13楼 xgixvuxx |
我在这里找了不少剑灵的服装替换 网站叫希望之地 还不错 他们搞剑灵破解挺专业的 |
14楼 bluexuemei |
- Sub xyf()
- Dim oV1, oV2
- oV1 = Cells(1, 1)
- oV2 = "2014-1-2 11:00"
- '此处写上你的代码判断oV1,oV2的逻辑大小
- [c1] = oV1 < DateValue(oV2) + TimeValue(oV2)
- End Sub
|
15楼 zhouzhongchi |
不会呀,看老师的解答 |