29. marts 2006 - 15:07
Der er
5 kommentarer og
1 løsning
valg af kolonner i VBA - evt. userform
Jeg sidder med en fil hvor jeg skal trække data ud, men kolonnenumrene er ukendte.
Altid - activesheet!
bruger vælger (MEN HVORDAN?):
- først den kolonne der indeholder datoer (koldato)
- dernæst den kolonne der indeholder beløb (kolbeløb)
- sidst den kolonne der indeholder beskrivelse (kolbeskr)
Open c:\test.txt For Output As #1
når disse kolonner er valgt laves ved hjælp af en løkke hvor:
vbadato = koldato.række
vbabeløb = kolbeløb.række
vbabeskr = kolbeskr.række
print #1, vbadato & " " & vbabeløb & " " & vbabeskr
next?
close #1
bruger skal altså vælge kolonnerne - rækkefølgen er ukendt. dernæst skal kolonnerne kigges igennem (hvis dato og beløb kolonnerne er forskellige fra "" - skal den række så bruges som nævnt ovenfor - og så videre til næste række)
så det er egentlig 2 spørgsmål
1) hvordan vælger en bruger vilkårlige kolonner
2) hvordan bruges de kolonner så data fra samme række trækkes ud i en løkke
29. marts 2006 - 16:59
#1
Sub test()
Dim koldato As Range
Dim kolbeløb As Range
Dim kolbeskr As Range
Dim vbaDato As Variant
Dim vbaBeløb As Variant
Dim vbaBeskr As Variant
Dim x as Long
'udpeg overskrifter
Set koldato = Application.InputBox("udpeg 1. celle i datokolonnen:", "Datokolonne", , , , , , 8)
Set kolbeløb = Application.InputBox("udpeg 1. celle i beløbskolonnen:", "Beløbskolonne", , , , , , 8)
Set kolbeskr = Application.InputBox("udpeg 1. celle i beskrivelseskolonnen:", "Beskrivelseskolonne", , , , , , 8)
'kør række 2 til 30 igennem
Open "c:\test.txt" For Output As #1
For x = 2 To 30
vbaDato = koldato(x, 1)
vbaBeløb = kolbeløb(x, 1)
vbaBeskr = kolbeskr(x, 1)
If vbaBeløb <> "" Or vbaDato <> "" Then
Print #1, vbaDato & " " & vbaBeløb & " " & vbaBeskr
End If
Next
Close #1
End Sub
30. marts 2006 - 09:15
#2
Det ser fornuftigt ud, jeg får dog en fejl
run-time error 424: Object required
jeg får fejlen på den første inputbox - er det noget i references der skal sætte op?