如何在excel vba中使用输入掩码?

时间:2018-04-08 04:54:15

标签: excel-vba input masking vba excel

请仔细阅读问题,请注意EXCEL VBA。 不是EXCEL

我被赋予了在VBA表单上修改日期输入的任务。文本框应该让用户输入日期MM/DD/YYYY

我需要使用输入掩码,不允许在使用日历后使用验证日期。到目前为止,我能够使用提到的两种方法(在使用ISDATE后强制格式化。)

但是,现在已经明确了必须是一个掩码,因此在输入时会过滤键,输入日期时掩码可见:__/__/____

如果你看到下划线,他应该只能输入数字而且/总是在那些位置

有办法做到这一点吗?我只能在Access VBA中找到掩码的教程。

2 个答案:

答案 0 :(得分:0)

我用谷歌搜索" Excel输入掩码"第二个结果是Using an Input Mask Microsoft Excel写的Allen Wyatt ...

  

使用输入掩码

     

...你可能想知道是否有办法设置一个自动添加冒号的输入掩码。好消息是肯定的,有。坏消息是不,没有。声音混乱?让我解释一下......

     

您可以设置自定义格式,以您想要的任何格式显示时间。例如,您可以使用以下步骤:

     
      
  1. 选择要用于时间输入的单元格。
  2.   
  3. 从“细胞”菜单中选择格式。 Excel将显示格式化单元格对话框。
  4.   
  5. 确保显示数字标签   image: The Number tab of the Format Cells dialog box.
  6.   
  7. 在“类别”列表中,选择自定义
  8.   
  9. #":"00替换类型框中的内容。
  10.   
  11. 点击确定
  12.         

    您现在可以只使用数字输入您的时间。问题(这是坏消息)是细胞确实没有时间。如果您输入230(2:30),则它不包含2:30作为时间 - 它包含320个。因此,您无法在时间计算中直接使用单元格的内容。

         

    要解决此问题,您可以使用其他列来显示转换为时间的输入数字。您需要做的就是使用公式来进行转换。例如,如果您输入的时间位于单元格A3中,则可以在其他单元格中使用以下公式进行转换:

    =(INT(A3/100)/24)+((A3 - (INT(A3/100)*100))/1440)
    
         

    格式化包含上述公式的单元格,使其显示各种时间格式之一,并且您已全部设置。

source上的全文及更多内容。)

答案 1 :(得分:0)

这篇文章可以帮助你...

Formatting MM/DD/YYYY dates in textbox in VBA