|
 |
 |
 |
|
|
|
 | |  |
 | |  |
 | |  |
 | |  |
 | |  |
 |
|
Horndal |
Medlem sedan: 2018-12-05
4 inlägg
|
|
|
Hej, Har letat igenom forumet lite, men inte riktigt hittat det jag söker. Är nybörjare när det kommer till VBA, så hoppas jag kan få hjälp här. Har en bok, där jag vill kopiera text i ett cellområde bestående av 2 rader och 3 kolumner i Blad4 till ett cellområde i Blad5 bestående av 1 rad och 4 kolumner. Är detta möjligt, eller måste områdena ha samma utformning?
Dessutom, vill jag i Blad4 fritt kunna välja bland flera olika cellområden (spridda i bladet) samt kopiera in dessa på första tomma rad i Blad5. Alltså kunna utföra kommandot flera gånger, men på ny rad.
Hoppas min fråga går att tyda. Tack på förhand!
|
|
|
|
 |  |
|
Christian |
Medlem sedan: 2015-08-26
1209 inlägg
|
|
|
Hej hej
Ja det går. kan skriva ett macro som hittar sista rad och lägger in data enligt din önskan.. Du menar 1 rad 6 kolumner eller har du tomma celler i din 2x3?
mvh Christian
|
|
|
|
 |  |
|
Christian |
Medlem sedan: 2015-08-26
1209 inlägg
|
|
|
Detta makro skriver iaf 2x3 till 1x6. Markera område som du vill kopiera, därefter kör du macrot. Om du kör macrot utan att ha valt ett område kommer du att få körfel :)
nvh Christian Option Explicit
Sub movestuff()
Dim rng As Range: Set rng = Selection
Dim inVnt As Variant: inVnt = rng Dim outVnt(1 To 1, 1 To 6) As Variant Dim i As Long: i = 1 Dim k As Long: k = 1 Dim m As Long: m = 1
For i = 1 To UBound(inVnt, 1) For k = 1 To UBound(inVnt, 2) outVnt(1, m) = inVnt(i, k) m = m + 1 Next k Next i
Dim wsin As Worksheet: Set wsin = ThisWorkbook.Sheets("Blad4") Dim wsout As Worksheet: Set wsout = ThisWorkbook.Sheets("Blad5") Dim lastrow As Long: lastrow = wsout.Cells(wsout.Rows.Count, "A").End(xlUp).Row
wsout.Activate wsout.Range(Cells(lastrow + 1, 1), Cells(lastrow + 1, 6)) = outVnt wsin.Activate
End Sub
|
|
|
|
 |  |
|
Horndal |
Medlem sedan: 2018-12-05
4 inlägg
|
|
|
Tack för svar!
Kanske var otydligt, kommer vara text som ska kopieras. Så det är ett sammanfogat område 2x3, med fritext. Ska kopieras på kommando till ett 1x3 område i en tabell i nästa blad. Översta raden först, osv.
Finns alltså ett helt gäng 2x3 områden med text i, men jag ska kunna markera vilka jag vill förflytta till tabellen. Har försökt en del själv, men får fel i intervall index.
Såg nu också att du lagt in koden för makrot, svarade samtidigt. Får samma fel här, "indexet är utanför intervall". Vart felsöker jag i koden? :)
Tack!
|
|
|
|
 |  |
|
Christian |
Medlem sedan: 2015-08-26
1209 inlägg
|
|
|
Får du inte upp möjlighet att felsöka när felet triggas? Ska bara vara att trycka på knappen felsök så får du se vad som gått snett. Annars markerar du ditt område, trycker alt-f11. sedanstegar du i koden med F8 tills du kommer till raden där felet uppstår.
Jag misstänker att dina blad kanske inte heter blad4 och blad5? Har du gjort någon förändring i koden så kan du visa vad du gjort. Annars ska den fungera, den kan dock inte klistra in i en tabell, utan klistrar i så fall in dina värden i raden strax under tabellen.
/c
|
|
|
|
 |  |
|
Horndal |
Medlem sedan: 2018-12-05
4 inlägg
|
|
|
Tack. Stämmer. Missade mellanslag i mina bladnamn.
Får ingen möjlighet till felsök, men funkade att göra enligt dina instruktioner. Nu får jag fel som lyder "Körfel nr 1004... Program- eller objektdefinierat fel"
Har det att göra med skillnader i vilken version av excel man har? Kör 2016
|
|
|
|
 |  |
|
Christian |
Medlem sedan: 2015-08-26
1209 inlägg
|
|
|
har du laggt ditt makro i en modul? om inte så måste du göra det. gå in i editorn, högerclicka på din arbetsbok i proejekr fönstret och lägg till en modul. lägg ditt makro i modulen. om du redan har makrot i en modul så behöver jag veta vilken rad som triggade felet, då får du stega i koden med f8 tills du får ett fel och en gulmarkerad rad. /c
|
|
|
|
 |  |
|
Horndal |
Medlem sedan: 2018-12-05
4 inlägg
|
|
|
Tack så mycket för all hjälp, nu verkar det fungera som det ska! Får ta mig tiden att verkligen läsa på i det här ämnet, kommer ha stor nytta av dessa kunskaper!
|
|
|
|
|  |
 | |  |
 | |  |
 | |  |
|
|
|
|
|
 |
 |
 |
|
|