ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 自建日历选择窗口取代VBA日历控件mscomct2.ocx解决兼容问题

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-5-22 16:33 | 显示全部楼层
向東 发表于 2019-5-22 08:33
本例用的是frm_query窗口,你可能是其他名字的窗口,我的意思你要把frm_query换成你自己定义的窗口名,我 ...

RibbonX控件的窗口,能用不?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-23 14:34 | 显示全部楼层
从原理上说是可以用的,但是我没试过,你可以试试。

本例的日历选择窗口是自定义的窗口,
然后其他窗口需要选择日期时,
就把这个窗口弹出来,
选择好了自动隐藏,
这就是本例的原理。

TA的精华主题

TA的得分主题

发表于 2019-5-23 15:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
向東 发表于 2019-5-22 08:33
本例用的是frm_query窗口,你可能是其他名字的窗口,我的意思你要把frm_query换成你自己定义的窗口名,我 ...

谢谢!这段时间迷上了VBA了

TA的精华主题

TA的得分主题

发表于 2019-6-27 08:53 | 显示全部楼层
xu_shiqian 发表于 2018-10-7 20:37
因为自己的程序比较大,利用放假将模块部分导出,简单作了个示例,供参考。

您好!您这个Calendar的文件使用方法也是拷贝到c:\Program Files\Microsoft Office\Office16\XLSTART\吗?
我是win10

TA的精华主题

TA的得分主题

发表于 2019-6-29 00:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
向東 发表于 2019-5-23 14:34
从原理上说是可以用的,但是我没试过,你可以试试。

本例的日历选择窗口是自定义的窗口,

您好!您和xu_shiqian的这个Calendar的文件是如何使用的?

TA的精华主题

TA的得分主题

发表于 2019-7-8 15:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢   分享,可以解决兼容问题

TA的精华主题

TA的得分主题

发表于 2019-8-7 16:40 | 显示全部楼层
mchotdog 发表于 2019-6-27 08:53
您好!您这个Calendar的文件使用方法也是拷贝到c:\Program Files\Microsoft Office\Office16\XLSTART\吗 ...

这个是不需要利用系统的ocx控件的,相当于自己开发了一个这样的控件,直接在文件里面使用。需要将楼主的程序模块复制到你自己的文件中,然后修改一下输出接口就可以了。

TA的精华主题

TA的得分主题

发表于 2019-8-11 21:18 | 显示全部楼层
本帖最后由 EH-yb 于 2019-8-11 21:23 编辑

****前些天发现自己的Win64位没有日历控件,后跟作者学习,做了一个自己喜欢的日历,非常感谢作者的分享!
****作者是在选择月份的上一个月和下一个月的日期添加了CommandButton控件的Tag,记录月份,                                        用Len(buttonGroup.Tag) 甄别。
****试着将42个写着日期的控件的Tag写上年与月,在导出点击控件所在的日期简洁一些。
       With Me.Controls("CommandButton" & i).Tag
****具体在控件写入日期过程:Private Sub bottonDate(sMonth As Date, eMonth As Date)
1、选择月份的上个月的最后几天
……………………………………………
            If m = 1 Then
                .ControlTipText = 12 & "月" & .Caption & "日"
                .Tag = y - 1 & "-" & 12
            Else
                .ControlTipText = m - 1 & "月" & .Caption & "日"
                .Tag = y & "-" & m - 1
            End If
……………………………………………………………………………………
2、选择的当月
……………………
            .Tag = y & "-" & m
………………………………………………………………………………
3、 选择月份的下个月的最前几天
……………………………………
            If m = 12 Then
                .ControlTipText = 1 & "月" & .Caption & "日"
                .Tag = y + 1 & "-" & 1
            Else
                .ControlTipText = m + 1 & "月" & .Caption & "日"
                .Tag = y & "-" & m + 1
            End If
……………………………………………………………………………………
类模块输出:
……………   
    y=Split(buttonGroup.Tag, "-")(0)
    m=Split(buttonGroup.Tag, "-")(1)
    If frm_query.Visible Then '查询窗口
        With frm_query
            If CalendarForm.Cs Then
                 .TextBox7.Value = DateSerial(Y, m, buttonGroup.Caption)
            ElseIf CalendarForm.Ce Then
                  .TextBox8.Value = DateSerial(Y, m, buttonGroup.Caption)
            End If
        End With
    End If
…………………………………………………………………………………………………………


TA的精华主题

TA的得分主题

发表于 2019-8-12 07:10 | 显示全部楼层
EH-yb 发表于 2019-8-11 21:18
****前些天发现自己的Win64位没有日历控件,后跟作者学习,做了一个自己喜欢的日历,非常感谢作者的分享!
...

很不错!不过有附件就更好啦!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-14 22:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
EH-yb 发表于 2019-8-11 21:18
****前些天发现自己的Win64位没有日历控件,后跟作者学习,做了一个自己喜欢的日历,非常感谢作者的分享!
...

这个方法不错,代码简洁
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 22:29 , Processed in 0.050951 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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