基本的にはフォルダ内のブック(約12個のブック)をチェックしようとしていますが、これらのブックの一部のシートは、それらを最上位の値で埋める。以下は私が試したことです。フォルダ内のワークブックをループしてセルのマージを解除してセルをマージする方法
以下のコードを1つのブックに使用すると動作します。誰かがそれで私を助けることができれば感謝し、
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
すべてのブックをチェックして、このコードを実行するには、私は以下の方法を試してみましたが、doesntのは本当に何でもします。
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
2番目のループの直前にファイル名= Dir()がありません –
このビットを指摘してくれてありがとうございます。プログラムは期待どおりに実行されます。 –