Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Excel 计算不是应用程序或活动工作簿的方法_Excel_Vba_Ms Project - Fatal编程技术网

Excel 计算不是应用程序或活动工作簿的方法

Excel 计算不是应用程序或活动工作簿的方法,excel,vba,ms-project,Excel,Vba,Ms Project,我在MS Project中编写了这段代码,但我认为我包含了与Excel接口所需的所有库 以下是我尝试过的: Sub OpenBackupFile() Titler = ActiveProject.CustomDocumentProperties("Title").Value BackupFile = "C:\POAMLogs\" & Titler & ".xlsx" 'Set ExcelBackerp = CreateObject("Excel.App

我在MS Project中编写了这段代码,但我认为我包含了与Excel接口所需的所有库

以下是我尝试过的:

Sub OpenBackupFile()
    Titler = ActiveProject.CustomDocumentProperties("Title").Value
    BackupFile = "C:\POAMLogs\" & Titler & ".xlsx"


    'Set ExcelBackerp = CreateObject("Excel.Application")
    Set ExcelBackerp = New Excel.Application
    With ExcelBackerp

        .Calculation = xlCalculationManual

        .EnableEvents = False
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Workbooks.Open BackupFile

    End With

End Sub
无论我得到什么,对象“\u应用程序”的方法“计算”失败 我可以让intellisense给我第一个选项,但在第二个选项中,“计算”并没有出现在intellisense中

我可以让intellisense给我第一个选项,但在第二个选项中,“计算”并没有出现在intellisense中


这是因为
.Calculation
不是
工作簿的属性。它具有
应用

您可以使用
ExcelBackerp.Calculation=xlCalculationManual
,但不能使用
ExcelBackerp.ActiveWorkbook.Calculation=xlCalculationManual

还请记住,如果您曾经使用latebinding,请将
xlCalculationManual
更改为
-4135

出现错误,因为您试图在没有工作簿的情况下设置计算

试试这个,它会有用的

Set ExcelBackerp = New Excel.Application
ExcelBackerp.Workbooks.Add   
ExcelBackerp.Calculation = xlCalculationManual
因此,在代码中,首先打开工作簿,然后设置计算:

或者更好的方法是声明变量/对象。会让你的生活更轻松:)

我可以让intellisense给我第一个选项,但在第二个选项中,“计算”并没有出现在intellisense中


这是因为
.Calculation
不是
工作簿的属性。它具有
应用

您可以使用
ExcelBackerp.Calculation=xlCalculationManual
,但不能使用
ExcelBackerp.ActiveWorkbook.Calculation=xlCalculationManual

还请记住,如果您曾经使用latebinding,请将
xlCalculationManual
更改为
-4135

出现错误,因为您试图在没有工作簿的情况下设置计算

试试这个,它会有用的

Set ExcelBackerp = New Excel.Application
ExcelBackerp.Workbooks.Add   
ExcelBackerp.Calculation = xlCalculationManual
因此,在代码中,首先打开工作簿,然后设置计算:

或者更好的方法是声明变量/对象。会让你的生活更轻松:)


我在谷歌上搜索了对象的“方法”计算“\u应用程序“失败”,并得到了有用的结果。@nicomp没有一个适用于我的情况/据我所知工作正常。您是延迟绑定还是早期绑定-您有
Set ExcelBackerp=CreateObject…
Set ExcelBackerp=New…
。选择1并使用它。
。计算
不是
工作簿
的一部分。它是
应用程序的
@dwirony no-那会是什么
应用程序
?Excel的新实例还是MS Project的现有实例?我在Google上搜索了对象的“方法”计算“\u应用程序”失败”并且得到了有用的结果。@nicomp没有一个适用于我的情况/据我所知,工作正常。您是延迟绑定还是提前绑定-您有
Set ExcelBackerp=CreateObject…
Set ExcelBackerp=New…
。选择1并使用它。
。计算
不是
工作簿
的一部分。它是
应用程序的
@dwirony no-那会是什么
应用程序
?Excel的新实例还是MS Project的现有实例?谢谢,这很有效。如果添加工作簿,然后打开所需的工作簿,是否需要在宏末尾关闭两个工作簿?我添加了一个工作簿作为示例。您可以打开工作簿。刷新页面并查看我最近的编辑:)谢谢,效果不错。如果添加工作簿,然后打开所需的工作簿,是否需要在宏末尾关闭两个工作簿?我添加了一个工作簿作为示例。您可以打开工作簿。刷新页面并查看我最近的编辑:)
Sub OpenBackupFile()
    Titler = ActiveProject.CustomDocumentProperties("Title").Value
    BackupFile = "C:\POAMLogs\" & Titler & ".xlsx"

    Dim ExcelBackerp As Excel.Application
    Dim wb As Excel.Workbook

    Set ExcelBackerp = New Excel.Application

    With ExcelBackerp
        Set wb = .Workbooks.Open(BackupFile)

        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    '~~> Work with the workbook here
    With wb

    End With
End Sub