工作簿上的输入框打开

时间:2016-03-14 14:55:44

标签: excel vba excel-vba

我正在尝试提供一些vba代码,以便在打开工作簿时自动打开输入框,并让用户输入日期,然后将日期放在A1单元格中。我已经编写了下面的代码,但输入框根本没有拉起它只是打开工作簿并继续...不确定发生了什么。任何和所有的帮助表示赞赏。

谢谢!

Option Explicit
Private Sub workbook_open()
Dim cellvalue As Variant
Dim ws As Worksheet

Set ws = Worksheets("Workbench Report")

ReShowInputBox: cellvalue = Application.InputBox("Please Enter Todays Date (dd/mm/yyyy)")

If cellvalue = False Then Exit Sub
If IsDate(cellvalue) And CDate(cellvalue) < Date Then
ws.Range("A1").Value = DateValue(cellvalue)
Else: MsgBox ("Invalid Date!")
GoTo ReShowInputBox
End If

End Sub

2 个答案:

答案 0 :(得分:2)

您的代码会在我打开工作簿时触发。请尝试以下步骤。

  1. 打开Excel并另存为,将扩展名更改为.XSLM
  2. 打开VBA编辑器(ALT + F11)
  3. 在左侧窗口中,找到您的宏文件(您刚刚创建并命名的文件 - 在“VBA项目”后面的括号中),向下钻取到“此工作簿”并双击它。
  4. 将代码粘贴到右侧窗口
  5. 保存文件并重新打开。
  6. 见附图。

    顺便说一下,“cellValue = false”应该是cellValue =“”,因为InputBox返回一个字符串而不是一个布尔值。

    enter image description here

答案 1 :(得分:1)

对于Workbook_Open事件,脚本需要驻留在私有模块(ThisWorkbook)

来自Ozgrid

  

Workbook_Open事件是Workbook Object的一个过程   这样,Workbook_Open过程必须驻留在私有模块中   工作簿对象(ThisWorkbook)。