调用工作簿上的宏与它的功能间歇性

时间:2017-09-07 09:11:40

标签: excel vba excel-vba

我所拥有的是一个宏,旨在打开其他工作簿并刷新这些工作簿中的内容。所有这些工作除了其中一个是间歇性的,并且我的意思是大多数时候它完全按照要求工作,但随机它会产生一个错误,说明无法找到宏。到目前为止,我还没有发现一点,我可以确定它的位置,因此很难调试。

下面是代码:

Call Shell("K:\ASA_Reporting\Audits\MDA\ListCompletedAudits.bat")

' This wait has been added to allow the command to run in Console
Application.Wait (Now() + TimeValue("00:00:10"))

ThisWorkbook.Worksheets("Bits n Pieces").Range("G14").Value = "True"

Dim wb1 As Workbook

'This is to update the 5S Audit Dashboard
Set wb1 = Workbooks.Open("K:\ASA_Reporting\Audits\Audit Dashboard v002.xlsb", True, False, , , "password")

Application.Run "'Audit Dashboard v002.xlsb'!Refresh5S"

wb1.Close savechanges:=True

Stop

有一个注释掉的部分“这是更新5S审计仪表板”这一点是发生问题的代码。上面关于等待10秒的部分是纠正与5S无关的不同问题。

我知道宏是正确的,因为它适用于5S工作簿,并且它通过我的更新程序确实可以工作,但正如我有时说的那样会出现一个错误,指出宏不存在。

我已经检查了代码被调用的内容(如下所示),但我不能有任何错误。

Sub Refresh5S()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim datasheet As Worksheet
Set datasheet = ThisWorkbook.Worksheets("Data Sheet")

Dim wb As Workbook
Dim ws As Worksheet
Set wb=Workbooks.Open("\\bosch.com\dfsrb\dfsuk\loc\wo\dept\service\ASA_Reporting\Audits
\5S Audit Master v2.xlsx", True, True)
Set ws = wb.Worksheets("Counts")

datasheet.Range("W6:Z21").Value = ws.Range("B5:E20").Value
datasheet.Range("AB6:AC400").Value = ws.Range("H5:I399").Value
datasheet.Range("AD6:AG400").Value = ws.Range("K5:N399").Value
datasheet.Range("AH6:AH400").Value = ws.Range("O5:O399").Value

wb.Close False

MsgBox "Thank you for your patience." & vbNewLine & vbNewLine & "The figures 
should update in a few seconds.", vbInformation
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

我以为我在Microsoft帮助页面上找到了答案,标题为“Excel中的宏停止在Workbook.Open命令之后”但是当你按下shift键时,这是在这个例子中没有发生的,它是留在设备上。 https://support.microsoft.com/en-us/help/555263

有没有人知道为什么它会随机决定5S工作簿中的宏不存在?

编辑: 试过下面的问题并且今天工作没有问题,然后今天问题又出现了以下错误:

Runtime 1004 error

除了下面的建议,代码没有被更改,这些建议工作了一天。

1 个答案:

答案 0 :(得分:0)

该问题最终是与Excel有关的,因为Office的最新更新现已解决了此问题。