首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA:打开、编辑、保存...在VB编辑器打开时工作,而不是在关闭时工作?

VBA:打开、编辑、保存...在VB编辑器打开时工作,而不是在关闭时工作?
EN

Stack Overflow用户
提问于 2014-01-09 23:40:05
回答 1查看 1.4K关注 0票数 0

我正在尝试打开多个excel文件(97,2003,2007,2010..等),编辑它们并保存它们。如果在开始时打开了Visual Basic编辑器(Alt+F11)并要求启用宏,则宏可以工作,但如果关闭了VB编辑器,它将打开该文件,并在保存第一个文件时停止。

我使用以下命令:

代码语言:javascript
复制
Set OpenWB = Workbooks.Open(FilePath)

其中OpenWB被声明为Workbook对象。这工作得很好,甚至可以在没有询问的情况下打开宏文件?但是,当我打开Visual-Basic编辑器(Alt-F11)时,

然后我编辑数据。然后使用以下命令保存:

代码语言:javascript
复制
' Save File
OpenWB.Save

代码试图保存,但随后就中断了。我已尝试启用和禁用Application.DisplayAlerts (真/假)。

问题是,我不能在VB编辑器打开的情况下运行它,因为我需要禁用宏警告,因为我有1000+文件。然而,如果不打开它,代码就不会通过保存代码行。

代码的一部分示例:

代码语言:javascript
复制
'Path
FilePath = FL.Cells(FileListCount, 1).Value

' Begin first loop
While FilePath <> ""

    ' Alerts?
    Application.DisplayAlerts = False

    ' Open File
    Set OpenWB = Workbooks.Open(FilePath)

    ' Alerts
    Application.DisplayAlerts = True

    ' Enter Replacement Loop
    ReplacementCount = 1
    ID = Ctrl.Cells(ReplacementCount + 11, 2).Value

    While ID <> ""
        OpenWB.Sheets(Ctrl.Cells(ReplacementCount + 11, 4).Value).Range(Ctrl.Cells(ReplacementCount + 11, 5).Value).Value = Ctrl.Cells(ReplacementCount + 11, 3).Value
        ReplacementCount = ReplacementCount + 1
        ID = Ctrl.Cells(ReplacementCount + 11, 2).Value
    Wend

    ' Save File
    OpenWB.Save

    ' Close file
    OpenWB.Close 

    ' status
    FL.Cells(FileListCount, 2).Value = "***** UPDATED *****"

    ' Increment counter
    FileListCount = FileListCount + 1

    ' Call new path
    FilePath = FL.Cells(FileListCount, 1).Value
Wend
EN

回答 1

Stack Overflow用户

发布于 2014-01-10 00:03:06

这是未经测试的。

您已经尝试过:

代码语言:javascript
复制
Workbooks.Open(FilePath)
Set OpenWB = ActiveWorkbook.ActiveSheet

'ur goes here code

OpenWB.Activate

ActiveWorkbook.Close SaveChanges:=True

它将同时消除保存行和关闭行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21024590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档