Avatar billede crazyfrog Nybegynder
04. maj 2006 - 10:23 Der er 7 kommentarer

Gennemløb af kolonner enkeltvis via en iterator som lægger 1 til

Jeg har brug for at kunne gennemløbe mine kolonner enkeltvis via en iterator som lægger 1 til, på samme måde som jeg kan gennemløbe mine rækker ved at lægge 1 til rækkenummeret.

Men da kolonnenumrene jo angives med bogstaver kan jeg jo ikke umiddelbart lægge 1 til.

Er der en måde at løse dette på?

Kan man udtrække et decideret kolonnenummer, for hver kolonne som man kan iterere på, og hvordan gør man i givet fald dette?
Avatar billede dragonknight Juniormester
04. maj 2006 - 10:32 #1
Hvad med at bruge Opslag ?
Avatar billede x-lars Novice
04. maj 2006 - 10:35 #2
=KOLONNE(D:D) giver dig svaret 4, altså at kolonne D er nummer 4. Er det sådan noget, du skal bruge?
Avatar billede crazyfrog Nybegynder
04. maj 2006 - 10:54 #3
Det er måske et skridt på vejen. Men jeg har jo også brug for at lægge 1 til 4-tallet, og så ud fra 5-tallet returnere =KOLONNE(E:E)

Det hele skal selvsagt gøres i VBA-kode, men jeg er ikke helt klar over syntaksen for det?
Avatar billede supertekst Ekspert
04. maj 2006 - 11:09 #4
for k = 1 to 5
    værdi = cells(1,kolonne)  'her ændres konnen - men via tal
next k
Avatar billede supertekst Ekspert
04. maj 2006 - 11:11 #5
om igen

for kolonne = 1 to 5
    værdi = cells(1,kolonne)  'her ændres kolonnen - men via tal - rækken er 1
next kolonne
Avatar billede crazyfrog Nybegynder
04. maj 2006 - 11:24 #6
Jeg kan ikke rigtigt få dit forslag til at virke:

Sub KolonneTest()
Dim value As String
Dim kolonne As Integer

For kolonne = 1 To 5
    value = Cells(1, kolonne) 'her ændres kolonnen - men via tal - rækken er 1

MsgBox value ' Denne returnerer bare tomt

Next kolonne
End Sub

**************************************************


Jeg har også ekperimenteret med følgende, men jeg kan ikke få den til at returnere Bogstavsværdien for hvert enkelt kolonnenummer?


Sub Test()

Dim myRange As Range
Dim KolonneCounter As Integer

KolonneCounter = 2

Dim col As Range

    For Each col In Worksheets("Ark1").Columns
   
    If col.Column Mod 2 = 0 Then
        col.ColumnWidth = 4
    End If
   
    If col.Column = KolonneCounter Then
        MsgBox "hej"
        MsgBox col.Column
    End If
   
Next col
   
End Sub
Avatar billede excelent Ekspert
04. maj 2006 - 17:58 #7
Sub test()
Dim t
For t = 1 To 5
Rows(1).Columns(t).Activate
MsgBox ActiveCell.Column
Next
End Sub
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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