將多個儲存格複製到一個位置

將多個儲存格複製到一個位置

我經常在 Excel 中傳輸資料。我希望能夠將許多隨機單元複製到另一個位置,以便它們並排。

例如我想複製a3,d21,aa32,cd121等。這樣a3->a1000,d21->b1000,aa32->c1000等。

除了逐一複製它們並來回花費很長時間查找每個隨機單元格之外,是否有一種簡單的方法可以做到這一點?

我希望得到的答案是:我會尋找這些單元格(a3、d21 等)並一次選擇它們,以便按順序選擇它們。然後我執行“一些命令”,然後單擊 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 中你會看到它們。

祝你好運!

相關內容