
我經常在 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 個獨立的螢幕:
答案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 中你會看到它們。
祝你好運!