25. februar 2015 - 15:23Der er
4 kommentarer og 1 løsning
VBA: Sheets som globale variabler
Hej Jeg har lavet nogle subrutiner, hvor jeg bruger sheets i hver subrutine. Jeg kunne godt tænke mig, at definere mine sheets en gang for alle, så jeg ikke behøver at definere selv samme sheets flere gange i forskellige subrutiner.
Hvordan gør jeg det (har ikke lavet/arbejdet globale variabler før)?
Jeg har bl.a. prøvet følgende:
Public mySheet1, mySheet2, mySheet3 As Worksheet Public Const mySheet1 = Sheets("Styringsark") Public Const mySheet2 = Sheets("Filplacering") Public Const mySheet3 = Sheets("Adresser")
men får følgende fejlmeddelelse: Compile error: Ambiguous name detected: mySheet1
Prøv: Public mySheet1 As Worksheet, mySheet2 As Worksheet, mySheet3 As Worksheet Sub testx() 'eller hvad Sub ellers hedder Set mySheet1 = Sheets("Styringsark") Set mySheet2 = Sheets("Filplacering") Set mySheet3 = Sheets("Adresser") End Sub
Jeg forstår ikke helt, hvordan jeg "i kaldet af en subrutine overføre MySheetX som parameter".
Det som jeg har gjort indtil nu er:
Sub1() Dim mySheet1, mySheet2, mySheet3 As Worksheet Set mySheet1 = Sheets("Styringsark") Set mySheet2 = Sheets("Filplacering") Set mySheet3 = Sheets("Adresser")
'Noget mere kode
End Sub
Sub2() Dim mySheet1, mySheet2, mySheet3 As Worksheet Set mySheet1 = Sheets("Styringsark") Set mySheet2 = Sheets("Filplacering") Set mySheet3 = Sheets("Adresser")
'Noget mere kode
End Sub
Det som jeg godt kunne tænke mig er noget lignende:
Overordnede variabler, hvor jeg definerer en gang for alle og kan bruge i mine subrutiner: Dim mySheet1, mySheet2, mySheet3 As Worksheet Set mySheet1 = Sheets("Styringsark") Set mySheet2 = Sheets("Filplacering") Set mySheet3 = Sheets("Adresser")
Sub1() Dim lastRow As Integer lastRow = mySheet1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Noget mere kode, hvor mySheet1, mySheet2 og mySheet3 indgå
End Sub
Sub2() Dim lastColumn As Integer lastColumn = mySheet3.UsedRange.SpecialCells(xlCellTypeLastCell).Column
'Noget mere kode, hvor mySheet1, mySheet2 og mySheet3 indgå
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.