06. juli 2003 - 18:16
Der er
15 kommentarer
vba brug af variable
jf. programstumpen nedenfor har jeg erklæret en variabel Antal. Bagefter beregner jeg en formel i celle "A3" og endelig forsøger jeg at trække denne formel fra celle "A3" og så langt ned som variablen Antal angiver. Er der nogen der ved hvordan syntaksen er for det sidste, jf sidste linie hvor der er indsat et ?-tegn
Set MyRange = Range("a1").CurrentRegion
Antal = MyRange.Rows.Count - 2
Range("a3").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC5,Kommuneliste!R2C1:R276C2,2,TRUE)"
Selection.AutoFill Destination:=Range("A3:?")
07. juli 2003 - 12:39
#12
Hele koden følger herunder. Den relevante del er næsten nederst. Jeg har excel 97, men jeg vil prøve koden på excel xp i aften
Sub HentData2()
Application.ScreenUpdating = False
Dim sDataPath As String
Dim sFilNameNy As String
Dim sDataOpsamlingsPath As String
Dim MyRange As Range
Dim fso As Object
Dim dir As Object
Dim fil As Object
Dim Filname
Dim test
'Dir med data-filer der skal overføres til regneark
sDataPath = ActiveWorkbook.Path & "\Indberetninger ubehandlede\"
'Dir til data-filer hvis data er opsamlede i regnearket
sDataOpsamlingsPath = ActiveWorkbook.Path & "\Indberetninger behandlet\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set dir = fso.GetFolder(sDataPath)
Set fil = dir.files
For Each Filname In fil
' Åben data-fil for læsning
Workbooks.Open FileName:=sDataPath & Filname.Name
Range("C3,c5,C7,C9,C11,C13,C16,c17,c18,C19,C21,C23,C25,C27,C30,c31,c32,C33,C34,C35,C36,C37,C38,c39,C41,C43,c45,c47,c49,c51").Select
'C5,C7,C9,C11,C13,C16,C16,c17,c18,C19,C21,C23,C25,C27,C30,c31,c32,C33,C34,C35,C36,C37,C38,c39,C41,C43,c45,c47,c49,c51").Select
Range("C3").Activate
Selection.Copy
Windows("Data til bolignetundersøgelse.xls").Activate
Range("b1").Select
'Selection.CurrentRegion.Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Save
'Luk data-fil
Windows(Filname.Name).Activate
Range("C3").Select
ActiveWindow.Close
'flyt filen efter aflæsning fra "sDataPath" til "sDataOpsamlingsPath"
fso.MoveFile sDataPath & Filname.Name, sDataOpsamlingsPath & Filname.Name
Next
' Afslut objecter
Set fil = Nothing
Set dir = Nothing
Set fso = Nothing
Selection.CurrentRegion.Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Set MyRange = Range("a1").CurrentRegion
antal = MyRange.Rows.Count - 2
Range("a3").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC5,Kommuneliste!R2C1:R276C2,2,TRUE)"
Selection.AutoFill Destination:=Range("A3:A" & antal)
Range("A1").Select
Selection.End(xlDown).Select
End Sub
08. juli 2003 - 11:46
#13
Måske at du kan bruge denne kode: (Måske skal du indsætte nogle '$' tegn)
Sub test()
Dim The_formula As String, MyRange As Range, Antal As Long
The_formula = "=VLOOKUP(RC5,Kommuneliste!R2C1:R276C2,2,TRUE"
Set MyRange = Range("a1").CurrentRegion
Antal = MyRange.Rows.Count - 2
With ActiveSheet
.Range(.Cells(2, 2), .Cells(Antal, 2)).Formula = The_formula
End With
End Sub