2016-11-08 162 views
0

我正在使用Excel 2010.Excel VBA模块不能正常工作

我将此代码添加到我的工作表中,并且工作正常。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Range("A1") > 0.5 Then 
     MsgBox "Discount too high" 
    End If 
End Sub 

但是我想创建一些方法来创建代码并在我们网络上的所有excel工作簿中共享该代码。

所以我创建了一个模块并创建了一个加载项,并将代码放入加载项的模块中。

enter image description here

我删除从片材中的代码,因为我想要的代码是从所述模块进行访问。

我启用了该模块。

enter image description here

而且VBA代码不工作,除非我把代码插入到表。请告知我如何才能在一个文件中包含此代码,并让代码在我们服务器上的所有Excel工作簿中共享。

+0

为代码工作的事件,您需要编写一个应用程序事件处置在AddIn中。 [见这里](http://www.cpearson.com/excel/AppEvent.aspx0) –

+0

看看这里http://www.excelguru.ca/content.php?152-Deploying-Add-ins-in- a-Network-Environment – Niclas

回答

0

您必须将Worksheet_Change放在Excel对象的Sheetname下。因此,如果您希望此过程在Sheet1上运行,则必须将其置于Sheet1下。如果你想让它在工作簿中的所有工作表的工作,你需要把它ThisWorkbook下,你需要的程序名从一个外接改变Workbook_SheetChange

+0

这只会响应Addin工作表中的工作表更改。 OP希望在我们网络上的所有excel工作簿中引用_share代码._ –