0

多くの人がこの問題について話しているのを見てきましたが、結合されたセルを単一のセルにコピーするという観点からのものです。ワークブックから範囲を取得し、2 番目のワークブックを開き、指定された行の次の空白セルに貼り付けようとする手順があります。

Public Sub BankBalances()
Dim fname As String
Dim fname2 As String
Dim mt As String, yr As String
'get the selected month
mt = MonthBox.Value
'get the selected year
yr = YearBox.Value
'set the file path to the selected year, month and the saving format
fname = yr & mt & "DB" & ".xlsx"
'set the file path to the selected year, month to open the trial balance sheet
fname2 = yr & mt & "TB" & ".xlsx"
'get the ranges
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Workbooks(fname2).Worksheets("excel").Range("I100")
'check for the next empty cell in row 55
Set rng2 = Workbooks(fname).Worksheets("UK monthly dashboard").Cells(55, Columns.Count).End(xlToLeft).Offset(0, 1)
'set the new range to hold the data from the original range
rng2.Value = rng1.Value
'set the result to format according to the other information in the workbook
rng2.Value = Round(rng1.Value / 1000, 0)

End Sub

上記のコードは、マージされていない行の次の空白セルにデータを貼り付けます。結合されたセルに貼り付けることができるようにする必要があります。

私が知りたいのは、VBA を使用して結合されたセルにデータを配置する方法があるかどうか、または結合されたセルをチェックして結合を解除し、データがコピーされたら結合するために別の手順を実行する必要があるかどうかです。

それが方法であれば、次の空のセルをチェックするのと同様の方法でそれを行うことができ、それがマージされているかどうかを確認してから、マージを解除して再度マージします。

4

1 に答える 1

1

あなたの言っていることを理解できれば、はい、しかし、あなたの例を変更することができれば、例えば A1 の内容を D1:D2 に入れ、それをマージしたいと思います。つまり、1 つのセルが 2 つに結合された値です – JamesDev 4 時間前

これはあなたがしようとしていることですか?

Sub Sample()
    Dim Rng1 As Range
    Dim Rng2 As Range
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        Set Rng1 = .Range("A1")
        Set Rng2 = .Range("D1:D2")

        '~~> Check if cells are merged
        If Rng2.MergeCells Then
            '~~> If merged then write to first cell
            Rng2.Cells(1, 1).Value = Rng1.Value
        Else
            Rng2.Value = Rng1.Value
        End If
    End With
End Sub
于 2012-10-24T17:45:03.637 に答える