从其他工作簿中调用PERSONAL宏

时间:2017-08-21 11:43:02

标签: excel vba excel-vba

我正在处理一个宏,它将从其他文件接收数据到共享模板。用户在共享工作簿中运行宏后,它将更新另一个工作簿。我只是希望尽可能轻松地访问它。

我不希望用户打开此模板并手动更新。这不是重点。一切正常。当我从Developer -> Macros -> Run调用宏时,复制到模板的数据是正确的,并且更新也有效。

但是当我在Developer -> Macros -> Options中设置快捷方式并且我使用非PERSONAL的所有其他工作簿中的快捷方式调用宏时,宏在打开共享工作簿后停在中间。并且它不会使用其他工作簿中的数据更新它。

我在这里错过了什么?有什么想法吗?

编辑:

我的代码:

    Public Sub KPI()

    Application.ScreenUpdating = False

    KPI = "C:\KPI Template.xlsx"

    Workbooks.Open (KPI)

    '****** <--- macro stops here - no error

    pathT = "C:\"
    fileNN = "KPI"
    filePath = Dir(pathT)

    While True

        If InStr(1, filePath, fileNN) > 0 Then

            GoTo resume1
        End If

        filePath = Dir

    Wend
    resume1:

    Workbooks.Open (pathT & filePath), ReadOnly:=True

    KPI_FileName = Dir(KPI)

    r = 8
    k = 2
    LDay = Day(Date)

    Sh_Name = Workbooks(KPI_FileName).Sheets("Check").Cells(r, 2)

    Do While Workbooks(KPI_FileName).Sheets("Check").Cells(r, 2) <> ""

        Do While Workbooks(filePath).Sheets(Sh_Name).Cells(LDay + 7, k) <> ""

            Workbooks(KPI_FileName).Sheets("Check").Cells(r, k + 1) = Workbooks(filePath).Sheets(Sh_Name).Cells(LDay + 7, k)

        k = k + 1
        Loop

    r = r + 2
    k = 2
    Sh_Name = Workbooks(KPI_FileName).Sheets("Check").Cells(r, 2)
    Loop

End Sub

0 个答案:

没有答案