[英]Copy and combine dynamic ranges to new sheet Excel Macro
我一直試圖弄清楚這一點,但無法讓它工作,因為宏代碼需要更加動態。 我是編寫宏的新手,非常感謝你的幫助。
Sheet1有兩個范圍:
第二個范圍是A3001:M3XXX(也取決於我評估的行數)。
(請注意,我只想復制每個單元格中的值,而不是公式)。
非常感謝,亞當
練習第一個。
選擇要復制的第一個范圍。 例如,選擇單元格A2:A3000按F5鍵並選擇特殊單元格選中常量然后單擊確定,您將看到已選擇所有非空單元格。 在其中一個選擇單元格上單擊鼠標右鍵(或單擊“復制圖標”),然后選擇“復制”,“轉到紙張2”並選擇“A1”和“選擇粘貼特殊值”。
選擇要復制和重復的下一個單元格范圍,直到粘貼,再次進入工作表2,再次轉到特殊單元格並選擇最后一個單元格並單擊確定選擇下面的單元格並粘貼。
練習這個,直到你做對了。
完成這些操作后,使用宏記錄器制作宏。
如果我正確理解你在尋找什么,那么這應該可以解決問題。 這不會為你做.csv保存。 如果您遇到問題,請告訴我們。
Sub moveRows()
Dim lastRow1 As Integer
Dim lastRow2 As Integer
Dim secondRangeSize As Integer
With Sheets("Sheet1")
lastRow1 = .Cells(3000, "A").End(xlUp).Row
lastRow2 = .Cells(6000, "A").End(xlUp).Row
End With
secondRangeSize = lastRow1 + (lastRow2 - 3000)
With Sheets("Sheet2")
.Range("A1:M" & lastRow1) = Sheets(1).Range("A1:M" & lastRow1).Value
.Range("A" & (lastRow1 + 1) & ":M" & secondRangeSize) = Sheets(1).Range("A3001:M" & lastRow2).Value
End With
With Sheets("Sheet2").Sort
.SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A1:M" & secondRangeSize)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.