Új hozzászólás Aktív témák

  • Kobe

    veterán

    válasz lapa #17761 üzenetére

    na, 1 kicsit hegesztettem a kódon 1-2 apróságot, így ebben a formában már sikerült elérnem hogy az Excel VBA-jába a Sheet 1 -re Private Sub / End Sub közé teszi be a Code3 tartalmát.

    Az egyetlen gondom az, hogy a sub nem fut le automatikusan, pedig jó lenne ha azt beinsertálás után automatikusan futtatná is.

    Van tippetek mit kellene hozzáadni, változtatni hogy az is menjen ?

    Function OpenformatSWP()
    Dim objexcel As Object
    Dim objworkbook As Object
    Dim CodeMod As Object
    Dim LineNum As Long
    Dim Code3 As String
    Dim destination2 As String

    destination2 = "C:\Access programmer\test.xls"
    Set objexcel = CreateObject("Excel.Application")
    objexcel.Visible = True
    objexcel.DisplayAlerts = False
    Set objworkbook = objexcel.Workbooks.Open(destination2)
    'Set CodeMod = objworkbook.VBProject.VBComponents("Sheet1").CodeModule
    Set CodeMod = objworkbook.VBProject.VBComponents("Ark1").CodeModule
    Code3 = ""
    Code3 = Code3 & " Dim lngLastRow" & vbNewLine
    Code3 = Code3 & " lngLastRow = Cells(Rows.Count, ""A"").End(xlUp).Row" & vbNewLine
    Code3 = Code3 & " Columns(""X:X"").Select" & vbNewLine
    Code3 = Code3 & " Selection.Insert Shift:=xlToRight" & vbNewLine & vbNewLine
    Code3 = Code3 & " Range(""X1"").Select" & vbNewLine
    Code3 = Code3 & " ActiveCell.FormulaR1C1 = ""common_id""" & vbNewLine & vbNewLine
    Code3 = Code3 & " Range(""X2"").Select" & vbNewLine
    With CodeMod
    LineNum = .CreateEventProc("Change", "Worksheet")
    ' .VBE.MainWindow.Visible = False
    LineNum = LineNum + 1
    .InsertLines LineNum, Code3
    End With
    objworkbook.Save
    objworkbook.Close
    'reopen Excel to run autostart
    objexcel.Workbooks.Open (destination2)
    End Function

Új hozzászólás Aktív témák