Avatar billede midcom Nybegynder
25. april 2005 - 09:21 Der er 4 kommentarer og
1 løsning

Lav en macro fra vb til excel

Hvordan kan jeg lave en macro i excel fra visual basic
Avatar billede falster Ekspert
25. april 2005 - 11:19 #1
Du kan da godt skrive dit modul i VB. Men når det er til Excel, ville jeg da bruge "Funktioner" - "Makro" - "Visual Basic Editor" i Excel. (Og så evt. læse under "Få hjælp til Visual Basic for Applications" i Excelhjælpen).

Håber ikke, at jeg har misforstået dig - men dit ? er meget kort.
Avatar billede midcom Nybegynder
25. april 2005 - 11:25 #2
Duer ikke.
Da jeg skal lave en have forskellige variabler med i makro.
Så marko skal bygges op af vb og overføres til et excel ark. og derfter udføres.
Der efter skal der hentes data i excel til vb.
Avatar billede bak Forsker
26. april 2005 - 22:13 #3
Denne åbner et excelfil, indsætter et nyt ark og indsætter en knap med tilhørende kode.
Brug det af det du kan :-)

Sub AddSheetAndButton()
    Dim xlapp As Excel.Application
    Dim xlwb As Workbook
    Dim NewSheet As Worksheet
    Dim NewButton As OLEObject
    Set xlapp = New Excel.Application
    Set xlwb = xlapp.Workbooks.Open("D:\cbx.xls")
   
   
'  Make sure access to the VBProject is allowed
    On Error Resume Next
    Set x = xlwb.VBProject
    If Err <> 0 Then
        MsgBox "Your security settings do not allow this macro to run.", vbCritical
        On Error GoTo 0
        Exit Sub
    End If
 

'  Add the sheet
    Set NewSheet = xlwb.Sheets.Add
   
'  Add a CommandButton
    Set NewButton = NewSheet.OLEObjects.Add _
      ("Forms.CommandButton.1")
    With NewButton
        .Left = 4
        .Top = 4
        .Width = 100
        .Height = 24
        .Object.Caption = "Return to Sheet1"
    End With
   
'  Add the event handler code
    Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "    On Error Resume Next" & vbCrLf
    Code = Code & "    Sheets(""Sheet1"").Activate" & vbCrLf
    Code = Code & "    If Err <> 0 Then" & vbCrLf
    Code = Code & "      MsgBox ""Cannot activate Sheet1.""" & vbCrLf
    Code = Code & "    End If" & vbCrLf
    Code = Code & "End Sub"
   
    With ActiveWorkbook.VBProject. _
      VBComponents(NewSheet.Name).CodeModule
        NextLine = .CountOfLines + 1
        .InsertLines NextLine, Code
    End With
    xlwb.Close savechanges:=True
    xlapp.Quit
    MsgBox "Kode er indsat"
End Sub
Avatar billede midcom Nybegynder
27. april 2005 - 07:52 #4
Jeg takker indtil vidre.
Der går nok lige en 10 dage før jeg får tid til at kigge på det.
Men send et svar og du får point
Avatar billede bak Forsker
28. april 2005 - 21:45 #5
ok :-)
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