0

私は奇妙な要件で立ち往生しています。以下は私の問題のモックです。

セル E1 の値は 1 です。

セル F1 の値は 2 です。

列 B は非表示です。

VBAを使用して、A1に「1」が含まれ、C1に「2」が含まれるように、E1とF1をセルA1にコピーする必要があります(列Bが非表示になっているため)

つまり、貼り付け中に非表示の列をスキップする必要があります。

2 つのコピー操作を実行できることはわかっていますが、非表示の列の数とコピーされるセルの数は常に同じではありません。そのため、コピー操作を一発で行う必要があります。

Excel VBAを使用してこれを達成する方法は?

4

1 に答える 1

1
Sub Tester()
    CopySkippingHidden ActiveSheet.Range("A1:C1"), _
                       ActiveSheet.Range("F1")
End Sub


Sub CopySkippingHidden(rngToCopy As Range, pasteStart As Range)
    Dim c As Range
    For Each c In rngToCopy.Cells
        Do While pasteStart.EntireColumn.Hidden
            Set pasteStart = pasteStart.Offset(0, 1)
        Loop
        c.Copy pasteStart
        Set pasteStart = pasteStart.Offset(0, 1)
    Next c
End Sub
于 2013-02-11T06:46:12.477 に答える