strawberry
Noen enkle knep
Du kan finne ut ganske mye om hvordan Excel og Visual Basic fungerer sammen ved å registrere noen enkle inntastinger og deretter studere koden som er generert.
Slik ser det ut nå du merker cellene A1 - B4 på arket:
		Range("A1:B4").Select
	
Slik ser det ut nå du først utvelger ark 'Ark2', og så merker cellene A1 - B4 på ark 'Ark2':
		Sheets("Ark2").Select
		Range("A1:B4").Select
	
Slik ser det ut nå du legger verdien 1.23 inn i cellen A1 (legg merke til at du ikke trenger å merke cellen -- koden din blir raskere og elegantere dersom du dropper cellemerkingen):
		Range("A1").Value = 1.23	
	
Nå har du all grunn til å sukke dypt -- i makro-programmering er nemlig desimal-skilletegnet ikke lenger en komma, som i selve Excel-arkene! Og hvis du synes at dette er jo ganske håpløst, så har du rett i det.

Hvis du ikke vil droppe cellemerkingen, så blir koden som følger:

		Range("A1").Select
		ActiveCell.Value = 1.23
	
Slik legger du inn samme verdien i flere celler på en gang:
		   Range("C1:D5").Value = 1.23
	
Slik gjør du det når du ønsker at makroen skal gjøre noe med et cellområde som du har markert på forhand, men som vil ikke være kjent på forhand:
		With Selection.(her kommer en presisering)
			... (her kommer din kode)
		End With
	
For eksempel, denne makroen vil fargelegge bakgrunnen i alt som er selektert:
	Sub Makro6()
    		With Selection.Interior
		        .ColorIndex = 3
		        .Pattern = xlSolid
		        .PatternColorIndex = xlAutomatic
		End With
	End Sub
	
Slik ser det ut nå du registrerer formelen (B2-B1)/(A2-A1) inn i cellen C1:
		Range("C1").FormulaR1C1 = "=(R[1]C[-1]-RC[-1])/(R[1]C[-2]-RC[-2])"
	
Du ser at cellene er her referert relativ til cellen C1. Koden sier: Vi har utvalgt celle C1 ("Range" er satt til C1). Formel som er nå definert gjelder cellen i rad 1 og (c)olonne 1, sett fra cellen som vi har utvalgt, dvs. celle C1.
Selve formelen gjenspeiler det som er registrert; det som er kryptisk er referansene til cellene. Referansen tin celle B2 fungerer som følger: Utifra cellen som formelen gjelder, se på cellen som er i neste rad og samtidig en kolonne til venstre (R[1]C[-1] = som er likebetydende med B2, sett fra C1).
Referansen til B1 fungerer som følger: Utifra cellen som formelen gjelder, se på cellen som er i samme rad og samtidig en kolonne til venstre (RC[-1] = som er likebetydende med B1, sett fra C1; R er det samme som R[0] her; index 0 skrives tydeligvis ikke).
Kan du se hvordan A1 og A2 er referert til?
Kan du nå ane hvordan Excel klarer å kopiere en slik formel nedover i en kolonne og gjøre "alt riktig", dvs. oppdatere cellereferansene på korrekt måte?
Heldigvis er det sjeldent at en formel blir til de grader vanskelig å lese.

Tilbake til index