Avatar billede folj Forsker
15. august 2016 - 10:23 Der er 2 kommentarer og
1 løsning

Excel-VBA: til et Range i et bestemt sheet.

Jeg oplever at jeg i min VBA-programmering ikke får nogen værdier ind når jeg vil tilgå dem med:

StaffingArray = Sheets(StaffingSheet).Range(Cells(DagholdRow, StaffingStartCol), Cells(DagholdRow, StaffingEndCol))


Så måtte jeg finde på en mere kreativ løsning:
Application.ScreenUpdating = False ' slår ScreenUpdate fra så bruger ikke oplever at der skiftes sheet under kodeafvikling
ThisSheet = ActiveSheet.Name ' registrerer hvilken sheet vi er på før kodeafvikling
Sheets(StaffingSheet).Activate ' aktiverer den sheet vi skal hente data i

' så hentes data ind i arrayet
StaffingArray = Range(Cells(DagholdRow, StaffingStartCol), Cells(DagholdRow, StaffingEndCol))
Sheets(ThisSheet).Activate ' skifter tilbage til oprindelig sheet

Application.ScreenUpdating = True ' slår ScreenUpdate til igen


Er der nogen der har en bedre kreativ løsning på problemet?
Avatar billede folj Forsker
15. august 2016 - 12:18 #1
Det er altså angivelsen af sheet, efterfulgt af .Range der ikke giver nogen data.
Når jeg derimod har aktiveret den rigtige sheet, så kan jeg tilgå data blot med range.
Avatar billede excelent Ekspert
15. august 2016 - 21:48 #2
prøv:

StafRng = Range(Cells(DagholdRow, StaffingStartCol), Cells(DagholdRow, StaffingEndCol)).Address

StaffingArray = Sheets(StaffingSheet).Range(StafRng)
Avatar billede folj Forsker
16. august 2016 - 11:29 #3
Det var sørme løsningen Deres exelence...

Da jeg læste dit forslag første gang, så tænkte jeg "Det gør da ingen som helst forskel", men jeg måtte sande at det gjorde det skam.

Tak for guldkornene.
Avatar billede excelent Ekspert
16. august 2016 - 15:51 #4
velbekom ;-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester