打开工作簿时运行宏

grN*_*dpa 2 excel vba

我已经搜索了。最相关的建议是宏名称“ workbook_open”,但是我仍然必须手动调用该模块。这是我编写的代码。(欢迎提出任何其他建议,因为这是我的第一个vba脚本-73岁)

Sub Workbook_Open()  
  Dim lastRow As Long     'last row with data  
  Dim thisDate As Double  'start timestamp  
  thisDate = Now()  
  With Sheets("Pressure Log")  
    lastRow = .Range("B" & .Rows.Count).End(xlUp).Row 'populate next row with date/time  
    Range("B" & lastRow).Offset(1) = Format(thisDate, "dddd")  
    Range("B" & lastRow).Offset(1, 1) = Format(thisDate, "mm/dd/yyyy")  
    Range("B" & lastRow).Offset(1, 2) = Format(thisDate, "hh:mm AM/PM")  
    Range("B" & lastRow).Offset(1, 3).Select 'position for user data  
  End With  
End Sub  
Run Code Online (Sandbox Code Playgroud)

Mat*_*don 5

在Visual Basic编辑器(VBE)中,打开项目资源管理器(Ctrl + R),然后双击该ThisWorkbook模块(或右键单击它并选择“查看代码”):

VBE的项目浏览器中的ThisWorkbook

这将调出ThisWorkbook模块的后台代码ThisWorkbook表示托管您的VBA项目的工作簿;这是一种特殊的模块类型,它继承了Excel.Workbook该类的所有成员,可以代表任何 Excel工作簿。

在代码窗格的顶部,您会注意到两个下拉列表:

代码窗格

选择Workbook从左侧的下拉菜单; VBE 自动为事件生成事件处理程序过程Open

Workbook_Open()过程已创建

请注意,右侧的下拉菜单现在显示Open-如果单击该下拉列表,您会发现它列出了可以处理的每个事件Workbook;选择一个将自动生成具有正确签名/原型的方法。

现在,将您的代码放入事件处理程序中,保存-一切就绪!下次在启用宏的情况下打开该工作簿时,将调用该事件处理程序,并且您的宏将运行。

玩得开心!学习永远不会太晚!

  • @grNadpa各种博客[Excel-Easy](https://www.excel-easy.com/vba.html)是其中之一,[Chip Pearson](http://cpearson.com)也是一种非常流行的资源。我也有[我自己的博客](https://rubberduckvba.wordpress.com/),但是它是更高级的,面向对象的内容(尽管[Rubberduck](http://rubberduckvba.com)*可以*帮助找到一个大量的代码问题,但其中有许多错误和一些检查误报可能会使您失望)。我个人的建议是探索所有内容,单击所有按钮,查看所有内容-您无法真正破坏任何内容;-) (2认同)