Jeg ved ikke om du kan indsætte en formel, men du kan styre Excel fra Access. I flg. kpde sender jeg data fra Access til Excel. Til sidst tælles posterne og sættes ind nederst i Excel. Derefter justeres kolonnebredderne:
Dim Obvar As Object, wkb As Object, Rst As Recordset Dim I As Integer, Tek As String, Tek1 As String, Tek2 As String, Excelpågrebet As String Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Tabel1", dbOpenTable) Set Obvar = CreateObject("excel.application") Obvar.Visible = True Set wkb = Obvar.Workbooks.Add wkb.Worksheets("Ark1").Cells(1, 1).Value = "Dato" For I = 2 To Rst.RecordCount + 1 wkb.Worksheets("Ark1").Cells(I, 1).Value = Str$(Rst.Fields![Datotid]) Rst.MoveNext Next Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)" wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 5).Value = Tek wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
Prøv at indspille en makro, kopier den og indsæt den i din overførselskode.
Min kode kræver også en reference til Excel. Men jeg tror faktisk ikke det er det spørgeren vil. Men derimod indsætte f.eks en Hvis formel i formelvinduet i Excel. Og der er jeg på bar grund.
Ja, det er noget derhenad, nu mangler jeg bare at formatere denne streng, så Access ikke skriver Application or object error i linien xlsheet.Cells(j, i + 1) = "=VÆRDI(HØJRE($L$5)&TIME($I5)&MINUT($I5)"
Der er ingen forskel på at skrive xlsheet.Cells(j, i + 1).formula = "=VÆRDI(($L$5)&TIME($I5)&MINUT($I5)" eller xlsheet.Cells(j, i + 1).value = "=VÆRDI(($L$5)&TIME($I5)&MINUT($I5)" eller xlsheet.Cells(j, i + 1) = "=VÆRDI(($L$5)&TIME($I5)&MINUT($I5)"
Inserting a Worksheet Function into a Cell To insert a worksheet function into a cell, you specify the function as the value of the Formula property of the corresponding Range object. In the following example, the RAND worksheet function (which generates a random number) is assigned to the Formula property of range A1:B3 on Sheet1 in the active workbook.
Sub InsertFormula() Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" End Sub
Hvis jeg fjerner = fra formlen, så skrives der VÆRDI(($L$5)&TIME($I5)&MINUT($I5)) i cellen Hvis jeg så sætter et = foran formlen i cellen, regner den den korrekte værdi ud. :( :( :(
Så har jeg en stump der VIRKER! xlsheet.Cells(j, i + 1).Formula = "=VALUE(($L$" & j & ")&HOUR($I" & j & ")&MINUTE($I" & j & "))" Takker for hjælpen allesammen, læg et svar, så I kan få nogle point.
Well, du lå faktisk inde med den korrekte løsning, sjap.... :)
Synes godt om
Ny brugerNybegynder
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.