从模块中为另一个WB添加事件
这个问题可能已经被回答了,但我似乎找不到我正在寻找的答案。 我正在创build一个模块,当它被调用时会创build一个新的工作簿并将信息从这个工作簿传输到新的工作簿。 我想使用这个macros添加一个新的工作簿,但没有运气。 目前我有以下几点:
Public Sub TemplateCreate() Dim NewBook as Workbook set NewBook = addnew End Sub Function Addnew() as Object Application.SheetsInNewWorkbook = 2 Application.EnableEvents = True Set AddNew = Workbooks.Add With AddNew .SaveAs Filename:="test.xls" End With End function
上面的代码工作得很好,但是当添加昏暗的事件作为工作簿Newbook我收到一个错误:只在对象模块有效。 有一个类似的代码行,使其工作的模块?
我试图添加下面的事件function,没有运气使其工作:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Tried changing between target and thisWB If thisWB.Sheets("sheet1").Cells.Count = 1 And IsEmpty(thisWB.Sheets("sheet1")) Then thisWB.Sheets("sheet1").Interior.Color = vbBlue End Sub
感谢您的帮助!
这是一个简单的例子:
在名为“clsWB”的Class模块中:
Option Explicit Private WithEvents m_wb As Workbook Public Property Set Workbook(wb As Workbook) Set m_wb = wb End Property 'EDIT: added Getter for workbook Public Property Get Workbook() As Workbook Set Workbook = m_wb End Property Private Sub m_wb_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) MsgBox "You selected " & Target.Address() & " on '" & Sh.Name & "'" '... or however you want to respond to the trapped event End Sub 'EDIT2: trap sheet changes Private Sub m_wb_SheetChange(ByVal Sh As Object, ByVal Target As Range) MsgBox "You changed " & Target.Address() & _ " to " & Target.Value & _ " on '" & Sh.Name & "'" '... or however you want to respond to the trapped event End Sub
在一个常规模块中:
Option Explicit Dim oWb As New clsWB Sub Tester() Dim AddNew As Workbook, ns As Long ns = Application.SheetsInNewWorkbook 'save default Application.SheetsInNewWorkbook = 2 Set AddNew = Workbooks.Add() Application.SheetsInNewWorkbook = ns 'restore previous default AddNew.SaveAs Filename:="test.xls" Application.EnableEvents = True 'make sure events are enabled Set oWb.Workbook = AddNew 'EDIT: set value in workbook oWb.Workbook.Sheets("sheet2").Cells(x,y).Value = "Test" End Sub
- 删除图纸/图表事件VBA
- Excel加载项检测名称工作表是否存在,如果是的话运行Marco
- 如何捕获列表中的新行添加?
- Application.Ontime取消无法对对象“应用程序”的方法“ONTIME”
- 用Worksheet_SelectionChange重写条件格式
- XL2003:更改ThisWorkbook.Windows()。Workbook_BeforeClose事件过程中的Visible属性可防止工作簿closures
- VBA – 事件内部事件(BeforeClose – > BeforeSave)不起作用
- 可以创build一个在多个工作表上工作的通用macros吗?
- loggingExcel触发的事件