Great code but wondered how I can paste values rather than just paste?
Thanks :)
De exemplu, aveți o foaie de lucru mare și acum doriți doar să copiați unele intervale selectate și să le distribuiți în alte foi de lucru. Dar când selectați intervalele multiple și faceți clic pe copiere, va apărea o fereastră de dialog promptă pentru a vă reaminti „Această comandă nu poate fi utilizată pentru mai multe selecții” În această condiție, cum copiați rapid mai multe intervale selectate? Iată câteva trucuri pentru a rezolva această sarcină.
Cu ajutorul Clipboard, puteți lipi toate intervalele selectate într-un alt interval sau foaie de lucru la un moment dat. Vă rugăm să faceți următoarele:
1. Clic Acasă > în Clipboard grup pentru a afișa Clipboard Panou.. Vedeți captura de ecran:
2. Și apoi copiați intervalele selectate de care aveți nevoie unul câte unul. În același timp, intervalele copiate au apărut în Clipboard Panou. vezi captura de ecran de mai sus:
3. Selectați prima celulă a intervalului de destinație în care veți lipi toate intervalele copiate și faceți clic Lipiți toate buton în Clipboard Panou.
Și apoi toate intervalele copiate au fost lipite în intervalul de destinație specificat.
Poate fi obositor să combinați zeci de foi din diferite registre de lucru într-o singură coală. Dar cu Kutools pentru Excel Combinați (foi de lucru și registre de lucru) utilitar, îl puteți finaliza cu doar câteva clicuri!
Încercare gratuită completă de 30 de zile!
Kutools pentru Excel - Include mai mult de 300 de instrumente la îndemână pentru Excel. Versiune completă de încercare gratuită de 30 de zile, nu este necesar card de credit! Ia-L Acum
Cu codul VBA, puteți copia, de asemenea, mai multe intervale selectate și le puteți lipi în orice altă foaie de lucru.
1. Ținând cont Ctrl tasta și selectați mai multe intervale nonadiacente pe care doriți să le utilizați.
2. presa Alt + F11 tastele în același timp pentru a deschide fișierul Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Moduleși introduceți următorul cod în modul:
Opțiune Explicit Sub CopiereMultipleSelecție () Dim SelAreas () Ca Range Dim PasteRange As Range Dim UpperLeft As Range Dim NumAreas As Integer, i As Integer Dim TopRow As Long, LeftCol As Integer Dim RowOffset As Long, ColOffset As Integer Dim NonEmptyCellCount As Integer ' dacă nu este selectat un interval Dacă TypeName (Selection) <> "Range" Atunci MsgBox "Selectați intervalul de copiat. Este permisă o selecție multiplă." Exit Sub End If 'Store the areas as separate Range objects NumAreas = Selection.Areas.Count ReDim SelAreas (1 To NumAreas) For i = 1 To NumAreas Set SelAreas (i) = Selection.Areas (i) Next' Determinați stânga sus celulă în selecția multiplă TopRow = ActiveSheet.Rows.Count LeftCol = ActiveSheet.Columns.Count For i = 1 To NumAreas If SelAreas (i). Row <TopRow Then TopRow = SelAreas (i) .Row If SelAreas (i) .Column <LeftCol Then LeftCol = SelAreas (i) .Column Next Set UpperLeft = Cells (TopRow, LeftCol) 'Obțineți adresa de lipire la eroare Reîncepeți Setarea următoare PasteRange = Application.InputBox _ (Prompt: = "Specificați celula din stânga sus pentru paste range: ", _ Title: =" Copy Mutliple Selection ", _ Type: = 8) On Error GoTo 0 'Exit if anulat Dacă TypeName (PasteRange) <>" Range "Apoi Exit Sub' Asigurați-vă că numai celula din stânga sus este folosit Set PasteRange = PasteRange.Range ("A1") 'Verificați intervalul de lipire pentru datele existente NonEmptyCellCount = 0 Pentru i = 1 To NumAreas RowOffset = SelAreas (i) .Row - TopRow ColOffset = Sel Areas (i) .Column - LeftCol NonEmptyCellCount = NonEmptyCellCount + _ Application.CountA (Range (PasteRange.Offset (RowOffset, ColOffset), _ PasteRange.Offset (RowOffset + SelAreas (i). Rows.Count - 1, _Count) (i) .Columns.Count - 1))) Next i 'Dacă intervalul de lipire nu este gol, avertizați utilizatorul Dacă NonEmptyCellCount <> 0 Apoi _ Dacă MsgBox ("Suprascrieți datele existente?", vbQuestion + vbYesNo, _ "Copiați selecția multiplă ") <> vb Da, apoi ieșiți din Sub 'Copiați și lipiți fiecare zonă Pentru i = 1 la NumAreas RowOffset = SelAreas (i). Row - TopRow ColOffset = SelAreas (i) .Column - LeftCol SelAreas (i). RowOffset, ColOffset) Next i End Sub
3. Apoi faceți clic pe Alerga pentru a rula codul.
4. Și acum, vă rugăm să specificați o celulă pentru a lipi intervalele în deschidere Copiați selecția multiplă casetă de dialog și faceți clic pe OK buton. Vedeți captura de ecran:
Platforma Copiați mai multe game utilitatea Kutools pentru Excel vă poate ajuta să copiați rapid mai multe intervale din foaia de lucru activă. Vă rugăm să faceți următoarele:
Kutools pentru Excel - Include mai mult de 300 de instrumente la îndemână pentru Excel. Versiune completă de încercare gratuită de 30 de zile, nu este necesar card de credit! Ia-L Acum
1. Selectați intervalele pe care doriți să le utilizați unul câte unul fără să țineți apăsat tasta Ctrl , apoi faceți clic pe Kutools > Copiați intervalele. Vedeți captura de ecran:
2. În Copiați mai multe game casetă de dialog, bifați Toate opțiune din Lipiți special și faceți clic pe Bine Button. Vedeți captura de ecran de mai sus:
Notă: Dacă doriți să păstrați înălțimea rândului și lățimea coloanei ca intervalele originale, verificați Inclusiv înălțimea rândului opțiune și Inclusiv lățimea coloanei din caseta de dialog Copiere intervale multiple.
3. Și specificați o celulă pentru a lipi intervalele în următoarea casetă de prompt și faceți clic pe OK butonul.
Și acum toate intervalele selectate vor fi lipite în celula specificată ca aceeași înălțime de rând și lățime a coloanei ca și selecțiile originale.
Faceți clic aici pentru mai multe informații despre utilitarul Copiere multiple
Kutools pentru Excel - Include mai mult de 300 de instrumente la îndemână pentru Excel. Versiune completă de încercare gratuită de 30 de zile, nu este necesar card de credit! Ia-L Acum
Kutools pentru Excel oferă altul Combinați foi de lucru utilitar pentru a copia cu ușurință mai multe intervale din mai multe foi de lucru sau multe cărți de lucru în Excel. Vă rugăm să faceți următoarele:
Kutools pentru Excel - Include mai mult de 300 de instrumente la îndemână pentru Excel. Versiune completă de încercare gratuită de 30 de zile, nu este necesar card de credit! Ia-L Acum
1. clic Kutools Plus > Combina.
2. În fereastra de dialog Combinați foile de lucru - Pasul 1 din 3, verificați Combinați mai multe foi de lucru din registrul de lucru într-o singură foaie de lucru și faceți clic pe Următor → butonul.
3. În caseta de dialog Combinați foile de lucru - Pasul 2 din 3, faceți după cum urmează:
(1) Selectați registrul de lucru în Lista registrului de lucru , apoi faceți clic pe Naviga butonul din spatele fiecărei foi de lucru pentru a specifica intervalul din fiecare foaie de lucru;
(2) Faceți clic pe Adăuga buton pentru a adăuga alte registre de lucru din care veți copia intervale, apoi repetați mai sus (1) pentru a specifica intervale în registrul de lucru adăugat.
(3) Faceți clic pe finalizarea butonul.
Kutools pentru Excel - Include mai mult de 300 de instrumente la îndemână pentru Excel. Versiune completă de încercare gratuită de 30 de zile, nu este necesar card de credit! Ia-L Acum
4. Apoi apare o casetă de dialog Kutools pentru excel și cere salvarea scenariului de combinație. Vă rugăm să faceți clic pe Da butonul sau Nu butonul după cum aveți nevoie.
Până în prezent toate intervalele specificate de la mai multe foi de lucru sau registre de lucru au fost copiate și lipite într-un nou registru de lucru.