簡體   English   中英

將具有多個非相鄰單元格的區域復制到同一單元格上的另一張紙上

[英]Copy a range with multiple non-adjacent cells to another sheet on the same cells

我寫了下面的代碼,除了可以永久使用,而且看起來好像Excel發生癲癇發作外,它的工作原理還不錯。

任何對史前事物的幫助將不勝感激。

Sub Data()
Sheets("2").Unprotect "Joe"
Worksheets("3").Range("a").Copy
Worksheets("2").Range("D10").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("b").Copy
Worksheets("2").Range("L10").PasteSpecial Paste:=xlPasteValues
Worksheets("2").Range("L18").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("c").Copy
Worksheets("2").Range("D11").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("d").Copy
Worksheets("2").Range("L11").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("e").Copy
Worksheets("2").Range("D17").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("f").Copy
Worksheets("2").Range("L17").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("g").Copy
Worksheets("2").Range("D18").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("h").Copy
Worksheets("2").Range("D19").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("i").Copy
Worksheets("2").Range("L19").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("j").Copy
Worksheets("2").Range("D20").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("k").Copy
Worksheets("2").Range("E22").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("l").Copy
Worksheets("2").Range("E23").PasteSpecial Paste:=xlPasteValues
Worksheets("3").Range("m").Copy
Worksheets("2").Range("E24").PasteSpecial Paste:=xlPasteValues
End Sub
Sub Data()

Dim rng As Range

With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With


Sheets("2").Unprotect "Joe"

With Worksheets("2")
    Set rng = Range("a")
    .Range("D10").Resize(rng.Rows.Count, rng.Columns.Count).Value2 = rng.Value2

    Set rng = Range("b")
    .Range("L10").Resize(rng.Rows.Count, rng.Columns.Count).Value2 = rng.Value2

'...and so on

End With


With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
End With

End Sub

請注意,由於您使用的是a,b,c的范圍名稱,因此除非它們在本地范圍內,否則無需使用工作表名稱對其進行限定。

除了復制粘貼外,還可以將目標單元格的值設置為等於原始單元格的值。 例如:

Worksheets("2").Range("D10").Value = Worksheets("3").Range("a").Value

為防止在Excel的應用程序窗口中出現類似癲癇的行為,請按照Excelosaurus的建議進行操作,並在宏的開頭關閉屏幕更新。 (並確保最后將其重新打開)。

在子Application.ScreenUpdating = False的開頭放置Application.ScreenUpdating = False ,在結尾放置Application.ScreenUpdating = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM