永发信息网

vb中用EXCEL比较日期 如何完成

答案:3  悬赏:40  手机版
解决时间 2021-04-05 21:37
  • 提问者网友:姑娘长的好罪过
  • 2021-04-05 01:30
研究个程序 运行可以提示最近过生日的好友 查询EXCEL表格里一列日期
我想问的是 如果比较2个日期 改怎么比较
假设我已经有当前日期 a 如何引用EXCEL里的日期 再来比较
请VB高手教教我列~~~谢谢!!!感激不尽
如果EXCEL不行 数据库也可以
讲的详细深入的 给你更多分!!

饿 一楼EXCEL好牛B 我拿你那个运行下是好用 但是想把他筛选出来 想比如数据很多的时候 一条一条看还是很复杂。。。 谢谢1楼的回答!
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-04-05 01:44
'VB 访问 Excel
Private Sub Command1_Click()
Dim xlApp, xlBook, xlSheet, nStr As String
Dim L As Long, H As Long, H1 As Long, H2 As Long, L1 As Long, L2 As Long

On Error GoTo Exit1
Set xlApp = CreateObject("Excel.Application") '启动 Excel
xlApp.Visible = True '显示 Excel 主程序窗口。如果不想显示,可删除此语句

'打开一个工作簿
Set xlBook = xlApp.Workbooks.Open("C:\my.XLS")'生日的好友 Excel 文件
Set xlSheet = xlBook.Worksheets(1) '设置对第一个工作表的引用

'遍历指定列 的所有单元格
L = 1
Call MinMax(xlSheet.UsedRange, H1, H2) '行的 起点、结束序号
Call MinMax(xlSheet.UsedRange, L1, L2, True) '列的 起点、结束序号

'访问某单元格,用 xlSheet.Cells(H, L).Value 的形式,或 xlSheet.Cells(H, L).Text
For H = H1 To H2
nStr = xlSheet.Cells(H, L).Value
'****在此处插入 nStr 与日期 a 比较的语句
Next

Set xlSheet = Nothing: Set xlBook = Nothing
xlApp.Quit: Set xlApp = Nothing '关闭 Excel,释放变量引用
Exit Sub

Exit1:
Set xlSheet = Nothing: Set xlBook = Nothing
xlApp.Quit: Set xlApp = Nothing '关闭 Excel,释放变量引用
MsgBox "错误 " & Err.Number & ":" & vbCrLf & Err.Description, vbCritical
End Sub

Private Sub MinMax(nRange, nMin As Long, nMax As Long, Optional GetLie As Boolean)
If GetLie Then '列的 起点、结束序号
nMin = nRange.Column
nMax = nMin + nRange.Columns.Count - 1
Else '行的 起点、结束序号
nMin = nRange.Row
nMax = nMin + nRange.Rows.Count - 1
End If
End Sub
'参见我的QQ空间(32063270)文章
全部回答
  • 1楼网友:逃夭
  • 2021-04-05 03:26
excel中选择工具栏右键有个visualbasic的选项,选择后出现一个录制宏的工具。你可以选择点按钮开始宏录制,然后在excel中随机点击或者其他操作。按下录制停止键。然后点击visualbasic编辑器图标,就会看到你刚才录制宏的过程中你对excel的操作的后台程序(vb)。可以直接手动修改程你想实现的功能。
  • 2楼网友:患得患失的劫
  • 2021-04-05 03:14
楼主,为什么一定要VB呢 ? 我假设A1同学生日, B1输入公式: =IF(ISERR(DATEDIF(TODAY(),A1,"yd")),"生日已过",IF(DATEDIF(TODAY(),A1,"yd")>=0,"这位同学还有 "&(A1-TODAY())&" 天过生日",0)) 这行么? 想要筛选就改改吧,让B1等于具体天数: =IF(ISERR(DATEDIF(A10,TODAY(),"yd")),"生日有误",DATE(YEAR(today()),MONTH(A10),DAY(A10))-TODAY()) 负数表示已过,正数表示还没过 自动筛选下拉列表里可以自定义筛选条件,一个自定义里可以放两个条件: 如:第一个条件可以放 "小于等于" 值 放"7", 第二个条件放 "大于" 值放 "0" 这个筛选结果就是一周内过生日的同学
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯