15. marts 2006 - 15:12Der er
17 kommentarer og 1 løsning
Vb vælg destination
Jeg har optaget en makro, der vælger et område og indsætter området et andet sted.
Nu vil jeg gerne have en msgbox, der spørger til destination, hvor selectionen skal indsættes.
Destinationen er i et andet regneark, så det vil være super, hvis jeg kunne klikke på eks. a1 i det ark, hvor selection skal indsættes og makroen så bare gør det. Hvordan gør jeg det?
Sub Makro1() Dim rngInsert As Range Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Worksheets("Ark1").Range("A1:B11").Copy Destination:=rngInsert End Sub
Merk området med data kjør makro Merk første celle i området som skal ha data, kjør samme makro. NB! denne makro vil feile hvis ikke målcelle er tom
Sub Makro1() If Not IsEmpty(ActiveCell) Then Selection.Name = "tmpName" Else Names("tmpName").RefersToRange.Copy Selection.PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False End If End Sub
Sub Makro1() Dim rngInsert As Range Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Worksheets("Ark1").Range("A1:B11").Copy rngInsert.PasteSpecial Paste:=xlAll End Sub
Sub Makro1() Dim rngInsert As Range Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Worksheets("Ark1").Range("A1:B11").Copy: rngInsert.PasteSpecial Paste:=xlAll Application.CutCopyMode = False End Sub
også en lille tettelse fra norge :-) men kabbaks løsning er nok mere elegant.
Sub Makro1() If Not IsEmpty(ActiveCell) Then Selection.Name = "tmpName" Else Names("tmpName").RefersToRange.Copy Selection.PasteSpecial Paste:=xlPasteAll Selection.PasteSpecial Paste:=xlPasteColumnWidths Application.CutCopyMode = False End If End Sub
hvis ikke må du trykke del når du merker cellen for mottak av data. at de andre cellene er fyldt gjør ingen ting. koden må vite om den skal kopiere eller lime inn i merket området dette skjer slik. If Not IsEmpty(ActiveCell) Then
Jeg er mest tiltalt af Kabbaks løsning, da jeg kun behøver at køre makroen en gang, men xlAll tager alt. Jeg vil kun have værdier og kolonnebredde, hvordan gør jeg det? Det ser ikke ud til at jeg kan bruge oyejo dobbelt pasting - det er det jeg gør idag manuelt.
Sub Makro1() Dim rngInsert As Range Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Worksheets("Ark1").Range("A1:B11").Copy rngInsert.PasteSpecial Paste:=xlValues rngInsert.PasteSpecial Paste:=xlColumnWidths Application.CutCopyMode = False End Sub
Hvis copyområet er det samme, er det nok å merke første celle i målområdet Valget er om man vil merke området eller angi det i en inputbox
Sub Makro1() Worksheets("Ark1").Range("A1:B11").Copy Selection.PasteSpecial Paste:=xlValues Selection.PasteSpecial Paste:=xlColumnWidths Application.CutCopyMode = False End Sub
Sub Makro1() Dim rngInsert As Range Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Selection.Copy rngInsert.PasteSpecial Paste:=xlPasteValues rngInsert.PasteSpecial Paste:=xlPasteFormats rngInsert.PasteSpecial Paste:=xlPasteColumnWidths Application.CutCopyMode = False End Sub
Men den er ikke stabil. Den giver en gang imellem en runtime error 424 i anden linje, den der starter med set.
Prøv at teste denne, den skulle også virker i andre mapper der er indlæst samtidig.
Sub Makro1() Dim rngInsert As Range, Sted As String Set rngInsert = Application.InputBox("Kopier Hvortil ?", Type:=8) Sted = "[" & rngInsert.Parent.Parent.Name & "]" & rngInsert.Parent.Name & "!" & rngInsert.Address Selection.Copy Range(Sted).PasteSpecial Paste:=xlPasteValues Range(Sted).PasteSpecial Paste:=xlPasteFormats Range(Sted).PasteSpecial Paste:=xlPasteColumnWidths Application.CutCopyMode = False End Sub
Tak Kabbak. Jeg har testet på flere forskellige ark og det virker - bortset fra det ark, som jeg har behov for at kopiere fra. Den siger fortsat objekt required i linje 2. Jeg tror ikke, at der skulle være andet i arket der laver rod.
Jeg synes ikke jeg kan være bekendt at vride mere tid ud af dig for den lave pointsum.Så derfor her er point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.