複数のセルを1つの場所にコピーする

複数のセルを1つの場所にコピーする

私は Excel でデータを頻繁に転送します。ランダムに選んだ多数のセルを別の場所にコピーして、並べて表示できるようにしたいと考えています。

たとえば、a3、d21、aa32、cd121 などをコピーして、a3->a1000、d21->b1000、aa32->c1000 などとします。

1 つずつコピーして、これらのランダムなセルをそれぞれ調べるのに長い時間をかけて行ったり来たりすること以外に、これを行う簡単な方法はありますか?

私が期待している回答は次のとおりです。これらのセル (a3、d21 など) を検索し、順番にすべて選択されるように 1 つずつ選択します。次に、「何らかのコマンド」を実行してから a1000 をクリックすると、すべてが並べてコピーされます。

Excel がこの種の操作を実行できない場合、コピーするこれらの「ランダムな」セルが同じ行にあり、一定の距離で離れている場合はどうなるでしょうか。例: (3 つ離れている) a6、d6、g6、j6、m6 など -> a10、b10、c10 など。

パート2。)

並べてコピーするのではなく、たとえば、正の整数 k に対して k 列ずつ離れてコピーしたい場合はどうすればよいでしょうか。

例 (k=4) a3、d21、aa32、cd121 など -> a1000、e1000、i1000、m1000、q1000 など

または、それが不可能な場合は、同じ行の j から k 離れたセルはどうなりますか。

例: (j=3,k=4) a6、d6、g6、j6、m6 など -> a10、e10、i10、m10、q10 など

答え1

VBA はあなたの味方です。何らかの理由で VBA が選択できない場合は、画面を分割して、ソース セルを上部に、宛先セルを下部に表示できます (またはその逆)。

垂直に分割(水平線で):
垂直に分割(水平線で)

反対:
反対

4 つの個別の画面での最終結果:
4つの独立した画面を持つ最終結果

答え2

VBA を試したことがない場合は、サンプル コードを提供します。質問には多くのオプションがありましたので、コードを分析した後、ニーズに合わせて調整できると確信しています。学習に役立つように、その点についてもコメントしました。

まず、新しいモジュールを作成します(入れる>モジュール

そして、その中にコードを入れます:

Option Explicit   ' no matter what, this is a must have line in every case

Sub test()

    ' declaring variables
    Dim rngSource As Range
    Dim rngTarget As Range
    Dim i As Long
    Const k As Long = 4 ' this is the k from your example
    Dim cell As Range

    ' choosing source cells
    Set rngSource = Application.InputBox(prompt:="Choose cells, use Ctrl", Type:=8)
    ' choosing destination cell
    Set rngTarget = Application.InputBox(prompt:="Select the 1st target cell", Type:=8)

    ' iterating through every cell in Source selection
    i = 0
    For Each cell In rngSource
        ' writing value
        rngTarget.Offset(0, i).Value = cell.Value
        i = i + k
    Next

End Sub

何らかの理由で、ここでは色を見ることができません。しかし、VBE では色を見ることができます。

幸運を!

関連情報