我正在处理一个宏,它将从其他文件接收数据到共享模板。用户在共享工作簿中运行宏后,它将更新另一个工作簿。我只是希望尽可能轻松地访问它。
我不希望用户打开此模板并手动更新。这不是重点。一切正常。当我从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