input框打开工作簿

我试图想出一些VBA代码来打开工作簿时自动打开input框,并让用户inputdate,然后将date放在A1单元格。 我已经写了下面的代码,但input框不拉起来,只是打开工作簿,并继续前进..不知道发生了什么。 任何和所有的帮助表示赞赏。

谢谢!

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 

您的代码触发工作簿为我打开。 尝试这些步骤。

  1. 打开Excel并另存为,将扩展名更改为.XSLM
  2. 打开VBA编辑器(ALT + F11)
  3. 在左侧窗口中,find您的macros文件(您刚刚创build并命名的macros文件 – 位于“VBA Project”之后的括号内),钻取到“This Workbook”并双击它。
  4. 将代码粘贴到右侧窗口中
  5. 保存文件并重新打开。

见附图。

顺便说一句,“cellValue = false”应该可能是cellValue =“”,因为InputBox返回一个string,而不是一个布尔值。

在这里输入图像说明

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

从Ozgrid :

Workbook_Open事件是Workbook对象的过程,因此,Workbook_Open过程必须驻留在Workbook对象(ThisWorkbook)的专用模块中。