分页: 1 / 1

VBA批量修改文件夹里所有文件

发表于 : 周二 3月 24, 2020 4:41 pm
peng
VBA批量修改文件夹里所有文件

Private Sub CommandButton1_Click()
On Error Resume Next
文件目录 = ThisWorkbook.Path & "\Excel\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder(文件目录)
For Each s In fldr.Files
With GetObject(文件目录 & s.Name)
.Sheets(1).Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False '随便做一点改动
.SaveAs ThisWorkbook.Path & "\Excel_修改后\" & s.Name '保存
.Windows(1).Visible = True '工作表可见
.Close (True) '保存改动
End With
Next
End Sub

Re: VBA批量修改文件夹里所有文件

发表于 : 周二 3月 24, 2020 4:42 pm
peng
For n = 1 To UBound(f)
        With GetObject(f(n))   'getobject是隐藏的
            .Sheets("121").UsedRange.Copy ActiveSheet.Range("a" & Rows.Count).End(xlUp).Offset(1)
            .Close  '关闭的是vbe窗口里不显示工作簿
         End With
Next

Re: VBA批量修改文件夹里所有文件

发表于 : 周二 3月 24, 2020 4:45 pm
peng
通过getobject打开的Excel文件只要被修改(写)并保存后,就只能在VBE中看到,但用户界面却看不到。
就算重启Excel,再去手动打开此文件,也是什么都看不到。不保存就没有这个问题!
如果要解决这个问题,必须在wb.close 前加一句
Application.Windows(wb.name).Visible = True