ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Cellfarmer

[分享] 月历记事本-万年历 7种配色漂亮的日历本+提醒事件

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-3-4 10:28 | 显示全部楼层
40楼附件提示“无法装载这个对象,不适用于这台计算机”  WIN7+OFFICE2010

谢谢分享.

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 12:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cocojyg 发表于 2015-3-4 10:28
40楼附件提示“无法装载这个对象,不适用于这台计算机”  WIN7+OFFICE2010

谢谢分享.

你能确定是哪个对象吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 12:33 | 显示全部楼层
Library ADODB
    C:\Program Files\Common Files\System\ado\msado28.tlb
    Microsoft ActiveX Data Objects 2.8 Library
Library Excel
    C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE
    Microsoft Excel 15.0 Object Library
Library MSComCtl2
    c:\windows\system32\mscomct2.ocx
    Microsoft Windows Common Controls-2 6.0 (SP3)
Library MSComctlLib
    C:\Windows\system32\MSCOMCTL.OCX
    Microsoft Windows Common Controls 6.0 (SP6)
Library MSForms
    C:\Windows\system32\FM20.DLL
    Microsoft Forms 2.0 Object Library
Library Office
    C:\Program Files\Common Files\Microsoft Shared\OFFICE15\MSO.DLL
    Microsoft Office 15.0 Object Library
Library stdole
    C:\Windows\system32\stdole2.tlb
    OLE Automation
Library VBA
    C:\Program Files\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.DLL
    Visual Basic For Applications

以上是40楼附件的VBA中的引用的库.

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 20:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 Cellfarmer 于 2015-3-4 20:10 编辑

在win8等64位系统:
万年历记事簿V3 注册DtPicker控件说明

Win7/Win8 X64系统
把mscomct2.ocx拷贝到\Windows\SysWOW64目录下:
以管理员身份运行程序中的“命令提示符";
在窗口中执行:
cd C:\windows\syswow64 回车
regsvr32 mscomct2.ocx 回车
提示"DllRegisterServer在mscomct2.ocx成功".

注意:64位系统不能拷贝到system32下注册;
若以非管理员身份注册,可能提示:
"模块已加载。但对DllRegisterServer的调用失败。错误码为0x8002801C.
有关此问题详细信息,请将错误码作搜索字词进行联机检查。"

控件在20楼2003版本中已包括。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 20:15 | 显示全部楼层
mscomct2.ocx是微软的控件:Microsoft Windows Common Controls-2 6.0 (SP3)
也可以从其他的32位Windows XP/Windows 7系统中拷贝。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-4 21:36 | 显示全部楼层
本帖最后由 Cellfarmer 于 2015-3-4 21:40 编辑

listview所需要的MSCOMCTL.OCX控件:
如果文件启动后提示无法加载对象,打开VBE发现UserForm2中没有Listview列表对象,可能是您的文件版本较低:
V3版设计时使用的版本是6.1.98.39 (2014.3.31),版本较新,如果你的文件版本低,可能无法加载。
把本附件中的该文件拷贝覆盖到C:\Windows\system32(32位系统,64位是SysWOW64)
以管理员身份运行附件中的命令提示符:
Regsvr32 mscomctl.ocx 回车
提示成功后注销或重启即可。

V3需要控件.rar (688.3 KB, 下载次数: 288)

TA的精华主题

TA的得分主题

发表于 2015-3-5 10:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享
支持一下了

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-8 19:20 | 显示全部楼层
本帖最后由 Cellfarmer 于 2015-3-8 20:59 编辑

发现版本差异,月历表的图形个数在Excel2007版数作9个,但2013数为4个。修改module3的Changepicmode()程序的最后部分如下:
On Error Resume Next

    Sheet1.Select
    Sheet1.Unprotect
    piccount = Sheet1.Shapes.Count

    If picmode = 4 Then  'no picture
        For i = 1 To piccount
            If ActiveSheet.Shapes(i).TopLeftCell.Address = "$R$2" Then
                ActiveSheet.Shapes(i).delete
                Range("R1").Value = ""
            End If
        Next i
    End If

    If picmode < 4 Then

        For i = 1 To piccount
            If ActiveSheet.Shapes(i).TopLeftCell.Address = "$R$2" Then ActiveSheet.Shapes(i).delete
        Next i
        Range("R2").Select
        ActiveSheet.Pictures.Insert(picfilename).Select
        Selection.Top = Range("R2").Top
        Selection.Left = Range("R2").Left
        Range("R1").Value = picfilename

    End If

    Sheet1.Range("H3").Select
    Sheet1.Protect

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-9 19:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 Cellfarmer 于 2015-3-9 19:15 编辑

在台Windows 7 Basic 64位系统+Office 2007 上调试V3成功。
启动时提示对象无法加载,检查UserForm1,2发现DTPicker不能加载。下载46楼的附件。解压,把mscomct2.ocx拷贝到C:\Windows\SysWow64下面。
以管理员身份运行命令提示符(在程序-附件):Regsvr32 mscomct2.ocx
提示注册成功。下载40楼的图片,解压到所在目录。打开文件,删除月历表的R1,S1原来的值,保存,关闭。重新打开,一切正常了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-9 19:17 | 显示全部楼层
在Office2007上的年历表的显示效果与2013版本有差异,即公历日期和农历日期中间的间隔线,2013可以在条件格式中隐藏掉,但2007版本显示出来了。不影响使用。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 03:37 , Processed in 0.032284 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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