jeg har lavet et lille script i vba, men der er noget galt i en linje, og jeg kan bestemt ikke lige regne ud hvad det er jeg fucker up.
de to variable LastRange og FirstRange spytter de rigtige værdier ud. men den linje jeg har markeret med fed fejler. hvad er det jeg har glemt?
Script:
Sub timecollect()
Dim rækkeNr As Integer, LastRange As String, FirstRange As String
With Workbooks("time").Worksheets("Sheet1")
rækkeNr =workbooks("time").Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count + 1
LastRange = "F" & rækkeNr + 30
FirstRange = "A" & rækkeNr
Workbooks("tsm.xlsx").Worksheets("Sheet1").Range("A3:F30").Copy
Workbooks("time").Worksheets("Sheet1").Range("FirstRange:LastRange").paste
End With
End Sub
hvor fejler mit vba script
Nu er det godt nok lang tid siden jeg har rodet med VBA, men du skal vel ikke have anførselstegn om FirstRange:LastRange ?
Så bliver det behandlet som en streng, og ikke som variabler.
Nu har jeg overhovedet ikke erfaring med dette, men jeg ved i java skal man starte med småt begyndelsesbogstav.
Så der står: lastRange og firstRange
Ligesom du har skrevet rækkeNr
Tror dog ikke det er fejlen, men det er vel et forsøg værd :-)
@Sllmon
VBA er ikke case-sensitiv, så det er i hvert tilfælde ikke problemet. Og man skal død og pine ikke bruge lille begyndelsesbogstav i Java. Det afgøres af hvordan du har erklæret din variabel.
Kneth er nok inde på det rigtige - udskift :
.Range("FirstRange:LastRange").paste
med
.Range(FirstRange & ":" & LastRange).paste
problemet er at Range-funktionen kunne se sådan her ud .range("A12:B30") hvor de der ækle gåseøjne er nødvendige.
Nix - nu hev jeg det ind i et Excel ark og prøvede - det skal se sådan her ud :
Workbooks("time").Worksheets("Sheet1").Range(FirstRange & ":" & LastRange).PasteSpecial
Det virker
Gåseøjne er kun nødvendige omkring en string-literal, ikke når det er en variabel.