Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel 2007卷影副本?_Vba_Excel_Excel 2007_Add In - Fatal编程技术网

Vba Excel 2007卷影副本?

Vba Excel 2007卷影副本?,vba,excel,excel-2007,add-in,Vba,Excel,Excel 2007,Add In,我的问题是关于Excel加载项和VBA代码 情况就是这样: 有2个Excel文件;一个是一个普通的Excel表,一个是.VLA代码,一个存储在网络驱动器上的VBA代码。 在Excel表单中引用.XLA文件,以便该表可以使用.XLA文件中的宏。到目前为止,这很好,但是有时看起来有一个bug:它看起来像是使用了XLA文件的某种“影子拷贝”。 当我在VBA编辑器中更改代码或设置断点时,会发生此错误,这两种情况在运行宏时都会被忽略。这感觉好像有一个XLA文件的旧拷贝,它是不可见的,它在某种程度上存储在正

我的问题是关于Excel加载项和VBA代码

情况就是这样:

有2个Excel文件;一个是一个普通的Excel表,一个是.VLA代码,一个存储在网络驱动器上的VBA代码。 <>在Excel表单中引用.XLA文件,以便该表可以使用.XLA文件中的宏。到目前为止,这很好,但是有时看起来有一个bug:它看起来像是使用了XLA文件的某种“影子拷贝”。 当我在VBA编辑器中更改代码或设置断点时,会发生此错误,这两种情况在运行宏时都会被忽略。这感觉好像有一个XLA文件的旧拷贝,它是不可见的,它在某种程度上存储在正常的Excel文件中,所以运行的代码不是我在编辑器中看到的宏。 我想这个问题在我安装MS Office 2007后就出现了


我希望有人能帮助我。

如果Excel在本地存储外接程序的版本,我不会感到惊讶。当对XLA进行更改时,我一定会重新添加您的外接程序,以确保安装最新版本。

编辑:

您可以尝试这样做:

Private Sub Workbook_Open()

    Application.DisplayAlerts = False

    AddIns("Your Library Name").Installed = False 'To remove current link
    AddIns.Add Filename = "\\Your Server Path\Excel_Library3.xla"
    AddIns("Your Library Name").Installed = True

    Application.DisplayAlerts = True

End Sub

这将确保在他们打开excel工作表时从您的网络位置加载最新的加载项。

而不是引用文件,我通过代码加载加载项。我的用途是将我的外接程序存储在Dropbox文件夹中,但网络也可以这样工作

Sub LoadAddins()

Dim wbOpen As Workbook
Dim wbNew As Workbook
Dim strAddinsPath As String
Dim strExtension As String

On Error Resume Next

strAddinsPath = "\\Server\Excel\AddIns\" 'Your server path here

ChDir strAddinsPath

strExtension = Dir("*.xlam")

        Do While strExtension <> ""
            Set wbOpen = Workbooks.Open(strAddinsPath & strExtension)
            strExtension = Dir
        Loop

On Error GoTo 0

End Sub
Sub-LoadAddins()
作为工作簿打开
以工作簿的形式新建
像绳子一样的粗线
作为字符串的Dim strExtension
出错时继续下一步
STRADINSPATH=“\\Server\Excel\AddIns\””在此处输入您的服务器路径
斯特拉迪斯帕酒店
strExtension=Dir(“*.xlam”)
当strExtension“”时执行此操作
设置wbOpen=工作簿.Open(跨越空间和延伸空间)
strExtension=Dir
环
错误转到0
端接头
您需要将其添加为受信任的位置,但允许我将正在处理的任何加载项放在文件夹中,并自动加载它们

迭代我修改过的文件夹中的文件的代码:

这是可能的。但为什么Excel有时会这样做,有时不会?我如何防止它这样做?大约有50人正在使用引用的XLA文件。我不能让他们每次都手动重新添加外接程序。他们中的一些人甚至不知道addin是什么:)