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
您的代码触发工作簿为我打开。 尝试这些步骤。
- 打开Excel并另存为,将扩展名更改为.XSLM
- 打开VBA编辑器(ALT + F11)
- 在左侧窗口中,find您的macros文件(您刚刚创build并命名的macros文件 – 位于“VBA Project”之后的括号内),钻取到“This Workbook”并双击它。
- 将代码粘贴到右侧窗口中
- 保存文件并重新打开。
见附图。
顺便说一句,“cellValue = false”应该可能是cellValue =“”,因为InputBox返回一个string,而不是一个布尔值。
对于Workbook_Open事件,脚本需要驻留在专用模块(ThisWorkbook)
从Ozgrid :
Workbook_Open事件是Workbook对象的过程,因此,Workbook_Open过程必须驻留在Workbook对象(ThisWorkbook)的专用模块中。