Avatar billede mainz Nybegynder
17. oktober 2006 - 12:49 Der er 3 kommentarer

Forklaring af kode

Følgende kode erstatter nogle tags med egentlige variabler - jeg forstår dog ikke, hvorledes den gør det. Kan I forklare koden nærmere?

Function ExcelMerge(TemplateFil As String, DocName As String) As String

undervejs
 
  Dim objExcel As Object
  Dim xls As Object 'Excel.Document
  Dim isExcelRunning As Boolean
  Dim SQL As String, stErr As String, SearchTag As String, ReplaceTxt As String


  SysFlettefelterDatoData

 
  On Error Resume Next
  Set objExcel = GetObject(, "Excel.Application")
  If Err.Number = 429 Then
    Set objExcel = CreateObject("Excel.Application")
    isExcelRunning = False
    Err.Clear
  Else
    isExcelRunning = True
  End If
 
  Set xls = objExcel.Documents.Add(TemplateFil)
 
  On Error GoTo errHandler
 

  Dim Flet As ADODB.Recordset
  Set Flet = New ADODB.Recordset
  SQL = "SELECT Felt, FletVaerdi FROM SysFlettefelter WHERE Felt Is Not Null and Felt <> '<Markør>' and Felt <> '<curser>'"
  Flet.Open SQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly


  While Not Flet.EOF
    ReplaceTxt = Nz(Flet!FletVaerdi, "")
    ReplaceTxt = Replace(ReplaceTxt, Chr(10), "")
    WordSearchAndReplace xls, Flet!Felt, ReplaceTxt
    Flet.MoveNext
  Wend
  Flet.Close
 

  If WordSearch(xls, "<Markør>") Then
    xls.Application.Selection.Delete Unit:=1, Count:=1
  Else
    If WordSearch(xls, "<cursor>") Then xls.Application.Selection.Delete Unit:=1, Count:=1
  End If
 
  xls.SaveAs DocName
  xls.Close -1  'wdSaveChanges
 
  If Not isExcelRunning Then objExcel.Quit True
  stErr = ""
 
ExitHere:
  ExcelMerge = stErr
  Exit Function

errHandler:
  stErr = "Error: " & Err.Description
  Exit Function

End Function
Avatar billede martin_moth Mester
20. oktober 2006 - 14:30 #1
Skal du have forklaret koden linie for linie, eller hvad er det præcist du spørger om?
Avatar billede martin_moth Mester
20. oktober 2006 - 14:31 #2
Det er vel kun dette her du er i tvivl om:

  Dim Flet As ADODB.Recordset
  Set Flet = New ADODB.Recordset
  SQL = "SELECT Felt, FletVaerdi FROM SysFlettefelter WHERE Felt Is Not Null and Felt <> '<Markør>' and Felt <> '<curser>'"
  Flet.Open SQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly


  While Not Flet.EOF
    ReplaceTxt = Nz(Flet!FletVaerdi, "")
    ReplaceTxt = Replace(ReplaceTxt, Chr(10), "")
    WordSearchAndReplace xls, Flet!Felt, ReplaceTxt
    Flet.MoveNext
  Wend

eller?
Avatar billede mainz Nybegynder
22. oktober 2006 - 22:12 #3
Det er faktisk hele koden
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
Kurser inden for grundlæggende programmering

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