ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 雨雪霏霏

[求助]日记模板如何自动生成农历年月日与篇数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-5-16 07:26 | 显示全部楼层

噢,我知道了。我把开始与结束时间给乱了。

你是说如果你手工改了开始时间,存盘时,就用手工改的开始时间来命名。对吧?

现在命名是这样,判断是否有结束时间,如果有,以结束时间为命名规划。 无,则加结束时间。 再判断开始时间与打开时间是否一致,不一定的话。以手工修改的开始时间为命名规划。 总的来说,他们的优表级是:手工输入的开始时间>手工输入的结束时间>系统自动命名的结束时间。这样,应该差不多了。[em06] I5lyYOwf.rar (18.86 KB, 下载次数: 120)
[此贴子已经被作者于2006-5-16 7:40:01编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 12:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

感谢Konggs兄的杰作 愿热爱写日记的朋友喜欢

  小弟在两台电脑上反复测试,孔兄这个最新“日记”模板已经把小弟原来想的所有问题完美解决。   孔兄帮了小弟的大忙,付出了大量劳动,辛辛苦苦设计出了这样的日记模板,大恩不敢言谢!小弟想到了应该把孔兄这个“日记”模板推广——凡是热爱写日记的朋友,都可以使用它,那会很“过瘾”——大概,是中国首例超功能日记模板呢。果真有朋友由此多了几分写日记的乐趣,孔兄功德无量矣!   以下是孔兄的日记模板使用方法:   (注意:孔兄与小弟的机子使用的都是Word2003,至于Word其他版本,尚未经过测试,还不知情况怎样。)   0、预先设置自己的电脑:把Word宏安全级别设为“中”(方法是:运行Word程序后,点“工具→宏→安全性”,在出现的对话框中会有“非常高”“高”“中”“低”四个选项,选择“中”)。   1、在31楼下载孔兄的最新版“日记”模板。——解压时,建议“目标路径”选择“桌面”(这是小弟的做法,这便于随时调用此模板写日记。以下流程介绍以此为基础),当然,保存在电脑里其他任意位置都可。   2、设置真正属于自己的模板: (1)打开桌面上的“日记”模板,出现一个“安全警告”对话框,选择“禁用宏”。 (2)格式设置: ①把正文段落设置成首行缩进:把光标移到表格下面一行(标题行位置),按回车键,创建了一个新段落,到“格式→段落”里把这个新段落设置成“首行缩进”。 ②天气、写作地点栏设置:把“午间小雨夜月极圆”改为你想每天出现在这栏的字(如“晴”“雨”,当然,也可以把这一栏清空;把“写于北戴河寓内”改为你自己常住地的地址。 ③其他个性化格式设置:请任意设置,比如可以把表格边框设为黑粗线,把表格底纹去除等等。   (3)宏编码改写——经过此设置,可以让电脑自动为你算出你出生到现在是第几天,从你写第一篇日记开始(假想中你每天都写一篇日记)这应该是第几篇日记,而且还可以设定你的日记打开密码: ①打开宏编辑器(方法是:工具→宏→Visual Basic 编辑器,或者按快捷键Alt+F11)。 ②把“天 = DateDiff("d", "1980/10/01", Date) + 1”一句中的“1980”“10”“01”改为你的出生年月日。 ③把“篇 = DateDiff("d", "1993/05/01", Date) + 1”一句中的“1993”“05”“01”改为你开始写日记那一天的年月日。 ④把“.Password = "11001100"”一句中的“11001100”改为你自己想要的日记打开密码。 ⑤把所有“F:\我的日记”改成你的电脑里保存日记的文件夹的地址,如果你的电脑里暂时还没有建立这个文件夹,没关系,你只要在这里输入路径,电脑会为你自动创建这个文件夹。   (4)关闭“Visual Basic 编辑器”。点工具栏上的“保存”按钮,退出此“日记”模板。   3、写日记:   (1)写日记之前,请保证有其他Word文件处于运行状态,不能是刚刚打开Word程序时出现的未有任何编辑操作的空文档,若是这个空文档,请在里头随便输入一个字或进行其他操作,以使它成为一个正在运行的(只不过是未命名的)文件。   (2)打开桌面的“日记”模板,在出现的对话框中选“启动宏”。这时你会发现电脑已经自动为你的日记写好了几项内容:你出生到现在是第几天的“天数”,你写日记到现在是第几篇的“篇数”,今天的公历日期与农历日期,今天是星期几,日记开始写作的时间(这一项你也可以自己修改)。   以下这一项设置为你添加右键菜单命令(注意:只须在第一次用“日记”模板写日记时操作,以后不必再进行):打开你的“Visual Basic 编辑器”,再到论坛里25楼复制Konggs兄的代码,粘贴到“Visual Basic 编辑器”中“Normal→Microsoft Word 对象→ThisDocument”左边栏中。关闭“Visual Basic 编辑器”。   (3)你只要写好标题、正文,直接点右上角的“关闭”按钮,在关闭这一篇日记的同时,电脑会自动为你加上日记写作结束时间于文件头表格里,并把这一篇日记自动命名,存入你先前指定的文件夹。(文件名格式例子:20060516回家的路1351。由三部分组成:今天的日期——20060516、日记标题——我今天写的日记标题是“回家的路”、今天开始写作日记的时间——1351——采用24小时制,即下午1:51。假如你在写今天的日记时有特殊情况,改动了日记开始写作的时间,那么关闭文件时电脑会采用你修改后的时间来自动命名文件。)   4、续写、修改日记:   有时,你已经写成并关闭今天的日记了,想要再改改日记里的内容,那么,请打开今天的日记文件(这时,就不必保证有其他Word文件在同时运行了),进行编辑。编辑完成后,你若是想修改一下文件头表格里的日记写作结束时间,请点鼠标右键,这时,你会发现菜单里有“更新日记时间并关闭”命令(这个右键命令会出现在你所有的Word文件中,但如果当前文件不是日记文件,点击它会出现“这个文件不是标准的日记名”提示框),点击之后,今天这篇日记在关闭的同时,会把你原来的日记写作结束时间改为新的时间。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 13:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

  孔兄,以上操作中仍存在老问题——在操作“3、写日记:(1时,仍得保证有其他Word文件在同时运行,假如写日记之前,电脑未打开任何Word文件,只是从桌面打开日记模板,写完日记后,在点关闭时,虽然会自动命名存盘,但Word依然会循环出现非法关闭对话框,最终在日记文件夹中额外添加一个空日记文件。小弟在两台电脑中反复测试了,结果都一样,百思不得解决之道,望孔兄再次测试。

  另外,小弟出于自己的日记写作实际情况,想增添一项功能于模板中,这项功能其实对于所有文字工作者都很实用。当然,得寸进尺,又烦扰孔兄,实是不该,极忙的孔兄可以不予再考虑。

  

实际情况:

  我在早上写了今天的日记《回家的路》,正文有两段文字。中午、晚上两次打开《回家的路》,都加写了两段。

  需要功能:

  电脑能自动为《回家的路》第二段、第四段末尾加一个破折号并相应标上写作结束时间(如:——09:10——13:10),这时间取自上次关闭《回家的路》后文件头的日记写作结束时间),在第三段、第五段的段首加上当时的开始写作时间(如:12:36——21:20——)。

  假如不是加写段落,而只是对原来的正文内容进行修改(如改错别字、删除一行文字),不需要在这部分进行段首与段末时间的标注。(当然,能够随时把修改了什么内容信息加上修改的日期时间——比如我是三天后才发现《回家的路》里有错别字,于是在《回家的路》里改正它——记录在段末,这也一定很理想。)

  真要实现这项功能,大概得在通用模板Normal中进行编写了,亦即每打开一个Word文件时,即能自动判断这是不是日记文件,如果是日记文件(说明:小弟电脑里日记文件的命名方式,也用在了其他文件的命名里。因此,前一下在32楼里说的右键菜单命令能够在所有Word文件中出现,是以偏概全了,也因此,还得请孔兄修改一下命令,把右键菜单命令的判断条件追加一个——本文件的命名方式是日记文件名格式,而且本文件来自F盘“我的日记”文件夹),等一下进行改错别字或追加段落之后关闭日记文件时,自动相应追加信息于段首段末。

TA的精华主题

TA的得分主题

发表于 2006-5-16 14:04 | 显示全部楼层
你的要求我想想。 你的第一反映的问题在我的机子一切正常。不信,请看我录制的动画。

[求助]日记模板如何自动生成农历年月日与篇数

[求助]日记模板如何自动生成农历年月日与篇数

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 14:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

  呵呵,孔兄真有心,竟如此不怕麻烦录制动画,谢谢了!

  我再好好研究一下,也找找其他人的电脑,看行不行。

  新功能问题,劳动孔兄了!

TA的精华主题

TA的得分主题

发表于 2006-5-16 17:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

改成这样了。

Public apar, atim
Sub 更新日记时间并关闭()
On Error GoTo handler
If Len(ActiveDocument.Name) >= 16 And ActiveDocument.Path = "F:\我的日记" Then
'如果名称大于16,形如200605120505.doc,则以为这篇文档可能是日记
Else
'否则,以为不是日记,跳出
MsgBox "这个文件不是标准的日记名"
Exit Sub
End If
ActiveDocument.Tables(1).Range.Cells(3).Range = _
Mid(ActiveDocument.Tables(1).Range.Cells(3).Range.Text, 1, 6) & Format(Now(), "hh:mm") '在后面插入时间格式
ActiveDocument.Save
ActiveDocument.Close
Exit Sub
handler:
MsgBox "没有表格,或者有错,请核对!"
End Sub
Static Sub 段落()
apar = ActiveDocument.Paragraphs.Count
End Sub
Private Sub Document_Open()
Dim MyBar As CommandBarControl
On Error Resume Next
Application.CommandBars("Text").Controls("更新日记时间并关闭").Delete
Set MyBar = Application.CommandBars("Text").Controls.Add(Before:=4)
With MyBar
.Caption = "更新日记时间并关闭"
.FaceId = 420
.OnAction = "更新日记时间并关闭"
End With
'记下时间
Application.CommandBars("Text").Controls("记下时间").Delete
Set MyBar = Application.CommandBars("Text").Controls.Add(Before:=4)
With MyBar
.Caption = "记下时间"
.FaceId = 440
.OnAction = "记下时间"
End With
'间隔性写日记
Application.CommandBars("Text").Controls("间隔性写日记").Delete
Set MyBar = Application.CommandBars("Text").Controls.Add(Before:=4)
With MyBar
.Caption = "间隔性写日记"
.FaceId = 450
.OnAction = "间隔性写日记"
End With
End Sub
Sub 间隔性写日记()
Dim ar As Range, endrange As Range
Dim abr As Range
Set ar = ActiveDocument.Range(ActiveDocument.Paragraphs(apar).Range.End - 1, ActiveDocument.Paragraphs(apar).Range.End - 1)
ar.InsertBefore "--" & Mid(ActiveDocument.Tables(1).Range.Cells(3).Range.Text, 7, 5)
Set abr = ActiveDocument.Range(ActiveDocument.Paragraphs(apar + 1).Range.Start, _
ActiveDocument.Paragraphs(apar + 1).Range.Start)
abr.InsertAfter atim & "--"
Set endrange = ActiveDocument.Range(ActiveDocument.Range.End - 1, ActiveDocument.Range.End - 1)
endrange.InsertAfter "--" & Format(Now(), "hh:mm") '得到新的打开的时间
End Sub
Sub 记下时间()
atim = Format(Now(), "hh:mm") '记得打开的时间
段落
End Sub

TA的精华主题

TA的得分主题

发表于 2006-5-16 17:30 | 显示全部楼层

使用方法:

1.打开要改写的日记,然后,点右键。选“记下时间”。

然后,就可以添加内容了。

2.一切改好后,再点右键,选“间隔性写日记”。就把相关的时间加到相应的位置。

3.你可以用右键的“更新日记时间并关闭”来关闭,如果不想来系统的结束时间就按一般的操作。

要求:

1.不能删除段落,否则,位置会出错。这时,你可以手工改。

2.你说的每个字的记录,我想是我是做不到的。如果要做到,就要用到类模,这个从技术、速度方面我们都是不能容忍的。同时,我也是做不到的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 20:43 | 显示全部楼层
  孔兄热心非常、耐性超人、技艺精湛,小弟慨叹难已!   目前只是在四台电脑上将31楼孔兄的模板测试了一番:   A、一台Office2003的电脑,与孔兄的电脑一样,没有任何问题——这一台电脑测试的结果,可信;   B、一台OfficeXP的电脑,电脑里是有F盘的,并且确实也已经在F盘自动创建了“我的日记”文件夹,可在关闭日记文件时,警告提示是“可能你没有F盘,或者有其它错误”(孔兄设计程序的细腻处,让人顿生敬意),结果日记文件未能保存,即“我的日记”文件夹里没有日记文件——这一台电脑本身有点其他病毒方面的问题,测试也较为匆忙,测试结果仍有待验查。   C、小弟的电脑因为应用了非常多的宏,并且两台电脑都使用同样的宏,测试结果仍同于33楼第一个问题。对照孔兄的自测与小弟测试A的结果,想来应该是小弟的两台电脑里必定都有一些宏是与孔兄的编码冲突的。这有待于小弟细细查找。   初步总结:孔兄31楼的日记模板已经完善,凡使用Office2003的朋友,可以自由操作——操作方法参考小弟32楼的介绍。但不必再管32楼里的一条:“3、写日记:(1)写日记之前,请保证有其他Word文件处于运行状态,不能是刚刚打开Word程序时出现的未有任何编辑操作的空文档,若是这个空文档,请在里头随便输入一个字或进行其他操作,以使它成为一个正在运行的(只不过是未命名的)文件。”   写给用Word写日记的网友:   孔兄31楼的日记模板是精心之作,是一件完整的作品,功能齐全,已经完全满足日常写日记的需要,小弟极力推荐使用。   至于目前孔兄在费心研究的模板新功能,大家可以在先使用31楼“日记”模板的同时期待,因为31楼日记模板就已经给我们带来的太多的惊喜了!这里头凝聚了孔兄太多的好心与汗水。   孔兄36楼的编码费了苦心,小弟先给孔兄泡杯茶!   小弟33楼的设想看似简单易实现,但实际情况变化较多(比如小弟在原来的日记里加写了几行之后,才想到没有“记下时间”),要周全考虑并成功解决,大概还得写六七倍于孔兄36楼的编码,这里还请孔兄稍事休息,不要被小弟拖得太累了。   测试了孔兄36楼的编码,感觉到孔兄其实已经考虑了很多细处,这可难为孔兄了!只是实际写文档时“意料”之外的操作会比较多,因此与小弟33楼的设想还有不合之处,完整测试情况汇报,还待小弟改时再总结上传。   这里先提请注意一点:小弟的设想是,一篇全部完成的日记的最后一段(附加要求:最后几段若是仅有段落标记而无段落内容的,不能算在正文“段”里头),在段末不必出现结束时间,因为在文件头“日记写作结束时间”里已经有这一项——这其实要求编写与右键“更新时间并关闭”命令相关的编码。   不知道合适不合适的对Konggs兄的一点建议:   Konggs兄可以把某日某时编写完成的“艺术品”文件名前(或文件名后)加上当时的日期与时间,这样便于网友们在解压后对照不同的“版本”进行学习,不然,十个版本都是同样的文件名(比如说都是《日记》),对于想比对研究的网友,有点混乱呢——尽管可以在下载后自己手工去重命名。一句话:还是小弟想偷懒,而让孔兄多多付出。呵呵,小弟是有些不近人情了!恕罪!
[此贴子已经被作者于2006-5-16 23:23:10编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-17 09:21 | 显示全部楼层

  还有一个问题想请孔兄考虑:

  孔兄设计的右键菜单命令——间隔性写日记、记下时间、更新日记时间并关闭,都会出现在所有Word文件里,这对于编辑并不是日记文件的其他Word文件,大概要算是一个“长物”吧。

  小弟在33楼说的“真要实现这项功能,大概得在通用模板Normal中进行编写了,亦即每打开一个Word文件时,即能自动判断这是不是日记文件”“把右键菜单命令的判断条件追加一个——本文件的命名方式是日记文件名格式,而且本文件来自F盘‘我的日记’文件夹”可能猜想得并不全对,仍请孔兄参考。

  孔兄36楼的代码,小弟仍在测试总结中。没有及时总结反馈,Sorry!

TA的精华主题

TA的得分主题

发表于 2006-5-17 12:31 | 显示全部楼层

雨雪兄

呵呵,我晕了。

如果要全部完成,可能又全部重写。

准备做一个工具栏,相关的三个命令放到工具栏上,要时,点击一下。这样,右键就不用了。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-21 14:37 , Processed in 0.026120 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表