ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于日历控件代入文本框后常亮的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-28 09:23 | 显示全部楼层 |阅读模式
我这个已经能选择日历并填入了,但是有个小问题。
选择目标单元格时,日历控件会出现,选择其他单元格时,控件就会隐藏。
而文本框不一样,点击后,如果不选择日期,控件就会常亮,会遮挡到原本文本框的内容。能不能也像单元格那样,不选就隐藏。
我不想做出向下偏移,或者直接放置到下边一点位置这种。
还有单元格也是只有在选择其他单元格时才会隐藏,如果选择文本框或其他输入型控件,或插件时也不会隐藏。

有大佬给改一下吗。
日历问题.rar (24.17 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

发表于 2018-7-28 11:55 | 显示全部楼层
Option Explicit

Dim rng

Private Sub DTPicker1_Click()
  Range("C1") = DTPicker1.Value
  rng = DTPicker1.Value
  DTPicker1.Visible = False
End Sub

Private Sub TextBox1_Change()
  DTPicker2.Visible = False
End Sub

Private Sub TextBox1_GotFocus()
  With DTPicker2
    .Value = IIf(rng <> "", rng, Date)
    .Visible = True
    .Top = TextBox1.Top + TextBox1.Height
    .Left = TextBox1.Left
  End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With DTPicker1
    If Target.Address = "$C$1" Then
      .Visible = True
      .Top = Cells(Target.Row + 1, 1).Top
      .Left = Target.Left
    Else
      .Visible = False
    End If
  End With
  DTPicker2.Visible = False
End Sub

Private Sub DTPicker2_Click()
    TextBox1.Text = DTPicker2.Value
    DTPicker2.Visible = False
End Sub

Private Sub UserForm_Initialize()
  DTPicker2.Visible = False
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-28 16:09 | 显示全部楼层

还有一个问题,现在是在工作表内进行选择修改只要不是C1单元格就可以隐藏 ,能不能改成选择目标不为C1或Textbox1时就隐藏,就是当我选择textbox2,或者按下其他按钮控件也可以隐藏。只要进行了目标不是C1或textbox1的操作时就隐藏。

TA的精华主题

TA的得分主题

发表于 2018-7-28 16:21 | 显示全部楼层
本帖最后由 一把小刀闯天下 于 2018-7-28 16:23 编辑
二号麦的自白 发表于 2018-7-28 16:09
还有一个问题,现在是在工作表内进行选择修改只要不是C1单元格就可以隐藏 ,能不能改成选择目标不为C1或T ...

这不是问题而是你新增的一个条件,可定义2个类型为boolean的public变量然后取and就可以判断了(或者模块级变量),自己试一下

很奇怪你为什么要用2个DTPicker控件,纯属简单问题复杂化,这样玩很开心是吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-28 17:02 | 显示全部楼层
一把小刀闯天下 发表于 2018-7-28 16:21
这不是问题而是你新增的一个条件,可定义2个类型为boolean的public变量然后取and就可以判断了(或者模块 ...

emmmmmm,我刚才没说清楚,我有可能需要多个文本框都进行日历选择,但是又不会做选择检查,所以只能分开做,变量我还不太会,能简单说一下吗?
萌新瑟瑟发抖
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 03:51 , Processed in 0.021581 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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