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

Posted

技术标签:

【中文标题】VBA:打开,编辑,保存...在 VBA 编辑器打开时工作,而不是在关闭时工作?【英文标题】:VBA: Openning, Editing, Saving... works when the VB editor is open, not when closed? 【发布时间】:2014-01-09 15:40:05 【问题描述】:

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

我使用这个命令:

Set OpenWB = Workbooks.Open(FilePath)

其中OpenWB 被声明为Workbook 对象。效果很好,甚至在不被询问的情况下打开宏文件?但是,当我打开 Visual-Basic 编辑器 (Alt-F11) 时,我就有了

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

' Save File
OpenWB.Save

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

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

部分代码示例:

'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

【问题讨论】:

您是否看到错误消息?如果是,是什么? 就是这样 - VBeditor 打开:安全通知问题?, - VBeditor 关闭:保存第一个文件后停止,没有错误。 【参考方案1】:

这是未经测试的。

你已经试过了吗:

Workbooks.Open(FilePath)
Set OpenWB = ActiveWorkbook.ActiveSheet

'ur goes here code

OpenWB.Activate

ActiveWorkbook.Close SaveChanges:=True

它将消除保存和关闭行。

【讨论】:

以上是关于VBA:打开,编辑,保存...在 VBA 编辑器打开时工作,而不是在关闭时工作?的主要内容,如果未能解决你的问题,请参考以下文章

求EXCEL VBA代码。单元格输入内容保存后自动锁定有内容单元格。下次打开后不可编辑。

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件

Excel VBA 入门

用VBA取消EXCEL文件VBA保护密码。

vba中tab空格怎么设置

怎么用vba给excel 加密