10. juli 2015 - 09:48Der er
3 kommentarer og 1 løsning
Fra kolonne til celle - Excel 2013
Har 20 kolonner (G3-G11, H3-H11, osv.). Ved hjælp af nedenstående makro flytter jeg indholdet fra kol. G til celle D3. Det er så meningen at indholdet fra kol. H skal flyttes til celle D4, osv. Hvorledes gøres dette uden at jeg skal lave 20 makroer?
Sub DataTilEnCelle()
Dim outputText As String Const tegn = ". "
On Error Resume Next
Sheets("Ark1").Select Range("G3:G11").Select
For Each Cell In Selection If Not IsEmpty(Cell) Then outputText = outputText & Cell.Value & tegn End If
Next Cell
Application.Goto Reference:="Bemærk1"
With Selection .Clear .Value = outputText .Value = Left(.Value, Len(.Value) - 1) .WrapText = True End With
Public Sub Test() Dim Data As Variant, UdData As Variant, X As Integer, I As Integer Const tegn = ". " Data = Sheets("Ark1").Range("G3:Z11") UdData = Sheets("Ark1").Range("D3:D23") For X = 1 To UBound(Data, 1) For I = 1 To UBound(Data, 2) If Not IsEmpty(Data(X, I)) Then UdData(I, 1) = UdData(I, 1) & Data(X, I) & tegn End If Next Next Sheets("Ark1").Range("D3:D23") = UdData End Sub
Public Sub Test() Dim Data As Variant, UdData As Variant, X As Integer, I As Integer Const tegn = ". " Data = Sheets("Ark1").Range("G3:Z11") ' Læser området med data ind i variablen Data Sheets("Ark1").Range("D3:D23").Clear ' tømmer området inden skrivning UdData = Sheets("Ark1").Range("D3:D23") ' Vælger området til variablen UdData For X = 1 To UBound(Data, 1) ' Læser lodret, række efter række For I = 1 To UBound(Data, 2) ' skifter kolonne efter kolonne If Not IsEmpty(Data(X, I)) Then ' hvis tom, hopper så over UdData(I, 1) = UdData(I, 1) & Data(X, I) & tegn ' putter kolonnen i en celle på uddata End If Next ' næste række Next ' næste kolonne Sheets("Ark1").Range("D3:D23") = UdData ' skriver data i arket End Sub
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.