PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAKopiera värdeKopiera värde
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-08-29 20:13
 

Hej!

Hittade ett excel dokument för att kunna fylla i och räkna poäng för golfrundan.

I dokumentet finns ett macro som kopierar data från Scorecard till database sheet. Jag skulle vilja ändra macrot att även kopiera namnet på banan. Namnet finns i B2 och kolumnen det ska kopieras till är AB. Jag har provat att maila killen som gjort det från början men hans emailadress finns inte längre.

 

Sub PlayerA()
    Dim destrange As Range
    Dim smallrng As Range
    Application.ScreenUpdating = False
    For Each smallrng In Sheets("Scorecard"). _
        Range("ad5:ad31").Areas
        Set destrange = Sheets("database").Range("A" & _
                        LastRow(Sheets("database")) + 1)
        smallrng.Copy
        destrange.PasteSpecial xlPasteValues, , False, True
        Application.CutCopyMode = False
    Next smallrng
    Application.ScreenUpdating = True
End Sub

Function LastRow(sh As Worksheet)
    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function

Nytt inlägg
 2012-08-30 16:02
 

Hej!

Koden är lite märklig i mina ögon. Det verkar som om målet är att kopiera området ad5:ad31 i Scorecard till arket database. Varför det sker med for each smallrng vet jag inte. Det hade väl gått att göra allt på en gång, vilket är mer optimalt.

Nyckeln för att förändra koden är att

1) Skapa en variabel som minns värdet av LastRow (på rad 8)

2) Byt ut värdet på rad 8 till den variabel som skapades i p1. Fungerar det?

3) Om det fungerar så kopiera allt från For Each - Next smallrng och lägg det alldeles direkt under next

4) Byt nu i den nya loopen ut ad5:ad31 till det nya område som skall kopieras och ändra även på destrange till önskat område (som måste göras 27 rader högt (31 -5 + 1).

5) Sedan bör det fungera, men det är ingen vacker kod... :-(

mvh

 


Kihlman

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAKopiera värdeKopiera värde

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter