代码之家  ›  专栏  ›  技术社区  ›  Michael

如何保存非活动工作表的副本-Excel 2003 vba

  •  2
  • Michael  · 技术社区  · 14 年前

    我们有一个软件,允许用户运行报告。此报表的模板是存在于网络驱动器上的Excel工作簿。这些步骤是:

    用户点击“生成报告” 打开模板,然后在特定的目录中填充数据。这是“无声”完成的,也就是说,用户永远看不到工作表。

    我的目标是在工作表打开时执行VBA模块,这将在单独的目录中保存工作簿的另一个副本。这是成功的,最多有一行代码似乎不想运行:

    ThisWorkbook.SaveAs (fileName)
    

    (其中“fileName”是一个包含正确目录的字符串。由于某些原因,这不会像我预期的那样保存工作簿的副本。如果我打开程序制作的副本并运行该代码,它可以正常工作,但在初始复制期间,当工作表未激活时,SaveAs不会执行任何操作。该代码位于BeforeSave事件调用的模块中。

    你有没有想过为什么没有运行这个程序?

    1 回复  |  直到 14 年前
        1
  •  0
  •   bugtussle    14 年前

    您知道是否触发了BeforeSave事件吗?我会将一个临时文件写入c驱动器或其他东西,以确保事件正在触发。

    open "c:\eventcheck.txt" for append as #1
    print #1, "event fired"
    close #1
    ThisWorkbook.SaveAs (fileName)
    
    推荐文章