Vba 循环浏览文件夹中的所有excel工作簿,并将所有公式转换为值
我正在寻找一个VBA代码,该代码允许我在某个文件夹中循环浏览所有Excel工作簿,并为每个工作簿将每个工作表中的单元格从公式转换为值 使用以下代码在用户指定文件夹中的所有工作簿中循环,并执行以下操作:Vba 循环浏览文件夹中的所有excel工作簿,并将所有公式转换为值,vba,excel,Vba,Excel,我正在寻找一个VBA代码,该代码允许我在某个文件夹中循环浏览所有Excel工作簿,并为每个工作簿将每个工作表中的单元格从公式转换为值 使用以下代码在用户指定文件夹中的所有工作簿中循环,并执行以下操作: 它将打开工作簿 它在工作簿中的每个工作表(包括隐藏的工作表)中循环,并将包含公式的每个单元格转换为值 执行转换后,它会保存并关闭工作簿,然后转到文件夹中的下一个工作簿 见下面的代码: Sub LoopAllExcelFilesInFolderCancelFormulas() 'Purpose: T
Sub LoopAllExcelFilesInFolderCancelFormulas()
'Purpose: To loop through all Excel files in a user specified folder and convert all formulas to values
Dim wb As Workbook
Dim ws As Worksheet
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog
'Optimize Macro Speed
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'Disable Excel Pop-up messages:
Application.DisplayAlerts = False
'Retrieve Target Folder Path From User
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
'In Case of Cancel
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
'Target File Extension (must include wildcard "*")
myExtension = "*.xls*"
'Target Path with Ending Extention
myFile = Dir(myPath & myExtension)
'Loop through each Excel file in folder
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(Filename:=myPath & myFile)
'Ensure Workbook has opened before moving on to next line of code
DoEvents
For Each ws In wb.Sheets
ws.UsedRange.Value = ws.UsedRange.Value
Next
'Save and Close Workbook
wb.Close SaveChanges:=True
'Ensure Workbook has closed before moving on to next line of code
DoEvents
'Get next file name
myFile = Dir
Loop
'Message Box when tasks are completed
MsgBox "Task Complete!"
ResetSettings:
'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
End Sub
Sub-loopalExcelFileSinFolderCancelFormulas()
'用途:循环浏览用户指定文件夹中的所有Excel文件,并将所有公式转换为值
将wb设置为工作簿
将ws设置为工作表
将myPath设置为字符串
将myFile设置为字符串
Dim myExtension作为字符串
Dim FldrPicker As FILE对话框
'优化宏速度
Application.EnableEvents=False
Application.Calculation=xlCalculationManual
'禁用Excel弹出消息:
Application.DisplayAlerts=False
'从用户检索目标文件夹路径
Set FldrPicker=Application.FileDialog(msoFileDialogFolderPicker)
用FldrPicker
.Title=“选择目标文件夹”
.AllowMultiSelect=False
如果.Show-1,则转到下一个代码
myPath=.SelectedItems(1)和“\”
以
"如果取消,
下一个代码:
myPath=myPath
如果myPath=”“,则转到重置设置
'目标文件扩展名(必须包含通配符“*”)
myExtension=“*.xls*”
'具有结束扩展名的目标路径
myFile=Dir(myPath&myExtension)
'循环浏览文件夹中的每个Excel文件
当我的文件“”时执行此操作
'将变量设置为等于打开的工作簿
设置wb=Workbooks.Open(文件名:=myPath&myFile)
'在继续下一行代码之前,确保工作簿已打开
多芬特
对于wb.Sheets中的每个ws
ws.UsedRange.Value=ws.UsedRange.Value
下一个
'保存并关闭工作簿
wb.Close SaveChanges:=真
'在继续下一行代码之前,确保工作簿已关闭
多芬特
'获取下一个文件名
myFile=Dir
环
'任务完成时的消息框
MsgBox“任务完成!”
重置设置:
'重置宏优化设置
Application.EnableEvents=True
Application.Calculation=xlCalculationAutomatic
Application.DisplayAlerts=True
端接头
循环浏览特定文件夹中所有工作簿的代码基于以下内容。这不是查看的地方。我们可以帮助您修复代码,但我们不是来为您编写代码的。