求助VBA实现到期提醒

求助VBA实现到期提醒,第1张

如果你需要一打开这个Excel文件就自动判断,那么新建一个模块,然后输入

Sub auto_open()

With Sheets("sheet1")

Dim tToday As Date

tToday = Date

Dim rRan As Range

Set rRan = .Cells(1, 1)

Do While rRan.Value <>""

.Rows(rRan.Row).Interior.Pattern = xlNone

Dim strTemp As String

strTemp = rRan.Offset(0, 1).Value

If tToday >= rRan.Value And rRan.Offset(0, 1) = "" Then

.Rows(rRan.Row).Interior.Pattern = xlSolid

.Rows(rRan.Row).Interior.Color = 65535

End If

Set rRan = rRan.Offset(1, 0)

Loop

End With

End Sub

这样就行了

说实话没太配橡看懂你的问题要求,我写的程序是判断A列中的日期液冲是否小于等于今天(就是是否已经到期或者过期),并且判断B列中相应位置是否有输入内容来的。具体的实现过程有很多种,我是按照你的要求中最方便写的来的培埋旁,具体的实现你可以自己改,比如把offset换成其他的引用形式等等。

还有请注意,这段VBA是在Excel2007中实现的,如果是Excel2003,改变颜色的方法以及颜色的代码会略有不同,你可以自己录制一段宏来测试一下。

很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做缓册数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用Excel的宏计算来解决这个问题。

1 数据准备

如图,以6个sheet为例,每个表中都是同样结构的数据,行数不确定。现在需要将各月数据汇总到汇总表中。

2 复制代码

在汇总表的标签点“右键”,找到“查看代码”,然后看到宏计算界面。如图所示:

会看到代码输入的界面:

复制下面这段代码到空白区域:

Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

If Sheets(j).Name <>ActiveSheet.Name Then

X = Range('A65536').End(xlUp).Row 1

Sheets(j).UsedRange.Copy Cells(X, 1)

End If

Next

Range('B1').Select

Application.ScreenUpdating = True

MsgBox '当前工作簿下的全部工作表已经合并完毕!', vbInformation, '提示'

End Sub

效果如图:

3 执行代码完成合并

做完上面的事情,然后只需要点击工具栏上面的“运行”下的“运行子过程/用户窗体”就可以了:

合并完之后会有提示。提示完成之后就可以把宏计算野蔽界面关闭了。如图所示:

点击确定,关闭代码窗口:

可以扰脊宏看到数据已经完成了合并,如果不需要标题的话,筛选删除即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12380665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存