excel如何录制宏,内容是逐一打开当前文件夹内的表格修改并保存?

想要把对应单元格内的内容替换掉,对一个文件夹下的多个excel文件都执行,怎么做?
想把E3和F2两个单元格的内容换成“指定文字”,对同一文件夹下的所有excel文件操作

录制是完成不了的,如下几个代码配合其他可完成。

    Dir,找到每个文件

    Workbooks.Open,打开文件

    workbooks(1).cells(1,1)=???, 替换单元格

    Save,保存

    Workbooks.Close关闭

追问

我想把E3和F2两个单元格的内容换成“指定文字”,对同一文件夹下的所有excel文件

操作,你看看这样行吗?
Sub a()
Dir
Workbooks.Open
Workbooks(1).Cells(E, 3) = 指定文字
Workbooks(1).Cells(F, 2) = 指定文字
Save
Workbooks.Close
End Sub
谢谢

追答

您这个不行,差的多了。


试试这个:

Sub a()
Dim mydocument
mydocument = Dir("文件路径" & "\*.xls*")

Do While Len(mydocument) > 0 And mydocument <> ThisWorkbook.Name

'停止刷新与提示
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'打开文件
Workbooks.Open (ThisWorkbook.Path & "\" & mydocument)
Worksheets(1).Cells(3, 5).Value = "指定内容"
Worksheets(1).Cells(2, 6).Value = "指定内容"

End If
Next
'保存并关闭
MkDir (ThisWorkbook.Path & "\已完成")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\已完成\" & mydocument
ActiveWorkbook.Close
Save = True

'恢复刷新与提示
Application.DisplayAlerts = True
Application.ScreenUpdating = True


End Sub追问

显示“编译错误,end if没有if块”
“停止刷新与提示”之类的中文要删除吗?

追答

Sub a()
Dim mydocument
mydocument = Dir("文件路径" & "\*.xls*")

Do While Len(mydocument) > 0 And mydocument ThisWorkbook.Name

'停止刷新与提示
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'打开文件
Workbooks.Open (ThisWorkbook.Path & "\" & mydocument)
Worksheets(1).Cells(3, 5).Value = "指定内容"
Worksheets(1).Cells(2, 6).Value = "指定内容"

Next
'保存并关闭
MkDir (ThisWorkbook.Path & "\已完成")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\已完成\" & mydocument
ActiveWorkbook.Close
Save = True

'恢复刷新与提示
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

追问

“next没有for”我加了一个for后又显示“缺少变量”

追答

Sub a()
Dim mydocument
mydocument = Dir("文件路径" & "\*.xls*")

Do While Len(mydocument) > 0 And mydocument ThisWorkbook.Name

'停止刷新与提示
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'打开文件
Workbooks.Open (ThisWorkbook.Path & "\" & mydocument)
Worksheets(1).Cells(3, 5).Value = "指定内容"
Worksheets(1).Cells(2, 6).Value = "指定内容"

Loop
'保存并关闭
MkDir (ThisWorkbook.Path & "\已完成")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\已完成\" & mydocument
ActiveWorkbook.Close
Save = True

'恢复刷新与提示
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

追问

一直在第一个打开的excel文件里循环闪烁,以及我是想修改后仍旧保存在源excel文件当中,不好意思,能否麻烦您再改一下呢?因为我实在是一窍不通,而且现在也比较急,真的非常感谢!

追答

试验过了,可以使用。
放代码的文件新建,不要在文件路径下。
文件路径直接复制,不要增加\。
Sub a()

'停止刷新与提示
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim myFile As String
Dim myDocument As String
myFile = "文件路径"
myDocument = Dir(myFile & "\*.xls*")

Do While Len(myDocument) > 0 And myDocument ThisWorkbook.Name

'打开文件
Workbooks.Open (myFile & "\" & myDocument)
Worksheets(1).Cells(3, 5).Value = "指定内容"
Worksheets(1).Cells(2, 6).Value = "指定内容"

'保存并关闭
ActiveWorkbook.Save
ActiveWorkbook.Close
Save = True

myDocument = Dir
Loop
'恢复刷新与提示
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

温馨提示:答案为网友推荐,仅供参考
相似回答