【发布时间】:2016-06-13 04:42:35
【问题描述】:
基本上我正在尝试检查文件夹中的工作簿(大约 12 个工作簿),这些工作簿中的一些工作表已合并单元格,我想取消合并并用最高值填充它们。以下是我尝试过的。
如果我将下面的代码用于单个工作簿,它就可以工作。
Sub Findmergedcellsandfill()
Dim MergedCell As Range,
Dim FirstAddress As String
Dim MergeAddress As String
Dim MergeValue As Variant
Application.FindFormat.MergeCells = True
Do
Set MergedCell = ActiveSheet.UsedRange.Find("", LookAt:=xlPart, SearchFormat:=True)
If MergedCell Is Nothing Then Exit Do
MergeValue = MergedCell.Value
MergeAddress = MergedCell.MergeArea.Address
MergedCell.MergeArea.UnMerge
Range(MergeAddress).Value = MergeValue
Loop
Application.FindFormat.Clear
End Sub
要检查所有工作簿并执行此代码,我尝试了以下方法,但实际上并没有做任何事情,如果有人可以帮助我,不胜感激。
Sub findandfilltheunmergedcells()
Dim FolderPath As String
Dim WorkBk As Workbook
Dim MergedCell As Range, FirstAddress As String, MergeAddress As String, MergeValue As Variant
FolderPath = "C:\Users\docs\"
FileName = Dir(FolderPath & "*.xl*")
Do While FileName <> ""
Set WorkBk = Workbooks.Open(FolderPath & FileName)
Application.FindFormat.MergeCells = True
Do
Set MergedCell = ActiveSheet.UsedRange.Find("", LookAt:=xlPart, SearchFormat:=True)
If MergedCell Is Nothing Then Exit Do
MergeValue = MergedCell.Value
MergeAddress = MergedCell.MergeArea.Address
MergedCell.MergeArea.UnMerge
Range(MergeAddress).Value = MergeValue
Loop
Application.FindFormat.Clear
Loop
End Sub
【问题讨论】:
-
在第二个
Loop之前缺少FileName = Dir() -
非常感谢您指出这一点。程序现在按预期运行。