繁体   English   中英

如何使用Mac版VBA创建新的Excel文件

[英]How to create a new excel file using VBA for Mac

我正在Excel 2011 for Mac中创建宏以创建报告。 宏的一部分想要打开文件(99%的时间),编辑文件,然后关闭文件(保存更改)。 在极少数情况下,如果文件不存在,它想创建一个新的excel文件,对其进行编辑,然后关闭该文件(保存更改)。

我已经成功创建了使用现有的在线问题和答案来打开现有文件的功能。 但是,如果找不到文件,则无法确定创建文件的方法。 如果我尝试简单地打开一个不存在的文件,则会出错。

这是代码:

Dim nExcel As Object
Dim nWB As Object
If FileOrFolderExistsOnMac(1, strFile) Then
        Workbooks.Open (strFile)
        ...
        ActiveWorkbook.Close SaveChanges:=True
    Else
        'Note: I understand that this check should be redundant
        Set nExcel = GetObject(, "excel.application") 'gives error 429 if Excel is not open
        If Err = 429 Then
            Set nExcel = CreateObject("excel.application") 'create
            Err.Clear
        End If
        'Set nWB = nExcel.documents.Add
        ...
        ActiveWorkbook.Close SaveChanges:=True
    End If

好的,该语句的If块起作用。 在其他块中,我能找到的创建不存在的文件的唯一相关文章是: 从Excel 2011创建Word文件

显然,Word与Excel不同,希望它们具有相似的语法是一个遥不可及的梦想。 但是,我继续尝试并运行,直到到达注释掉我设置nWB = nExcel.documents.Add的行为止,并出现运行时错误438:对象不支持此属性或方法。

您不需要Set nExcel行。 这是用于从其他应用程序(在Windows上)控制excel。 您所需要做的就是创建一个新的“工作簿”,并且由于您已经在Excel中,因此上下文已经存在,因此您所需要做的就是用它替换它并删除错误检查:

Workbooks.Add

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM