Avatar billede baadsager-e-box.dk Nybegynder
09. december 2002 - 10:38 Der er 6 kommentarer og
1 løsning

Macro

Hej

Kan man få word til at køre en makro i en excel fil, hvis man kan det hvorledes skrives dette??
Avatar billede Slettet bruger
09. december 2002 - 12:40 #1
Avatar billede baadsager-e-box.dk Nybegynder
10. december 2002 - 14:09 #2
Din makro får fat i regnearket, men den kan ikke få fat i makroen i excel, den siger hele tiden at det kan man ikke, hvordan skal det skrives hvis man ønsker at afspille en makro i excel fra en worddokument???
Avatar billede Slettet bruger
10. december 2002 - 21:12 #3
Tjek lige i Visual Basic modulet, at du under Tools - References, har afkrydset Microsoft Excel 9.0 (XP= 10.0) object library. Man skal nemlig altid sørge for, at have adgang til det programs object library som man vil bruge.
Avatar billede Slettet bruger
10. december 2002 - 22:24 #4
Jeg har nu afprøvet den macro jeg tidligere henviste til, med indsættelse af:

Call oXL.Run("Macro navn")

Jeg måtte lægge macroen i selve workbooken, men med den rette henvisning, kan den nok også virke i personal marcro workbook.

Det virker, så jeg gengiver hele macroen her med min tilføjelse. Du skal selvfølgelig tilpasse den til dit, men det er vigtigt at afkrydse objekt biblioteket for Excel i Word, ellers virker den ikke.


Sub WorkOnAWorkbook()


Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim oRng As Excel.Range
Dim ExcelWasNotRunning As Boolean
Dim WorkbookToWorkOn As String

'specify the workbook to work on
WorkbookToWorkOn = "E:\myworkbook.xls"

'If Excel is running, get a handle on it; otherwise start a new instance of Excel
On Error Resume Next
Set oXL = GetObject(, "Excel.Application")

If Err Then
  ExcelWasNotRunning = True
  Set oXL = New Excel.Application
End If

On Error GoTo Err_Handler

'If you want Excel to be visible, you could add the line: oXL.Visible = True here; but your code will run faster if you don't make it visible

'Open the workbook
Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn)

'Process each of the spreadsheets in the workbook
For Each oSheet In oXL.ActiveWorkbook.Worksheets
 
Call oXL.Run("SortData")

  'put guts of your code here
  'get next sheet
Next oSheet

If ExcelWasNotRunning Then
  oXL.Quit
End If

'Make sure you release object references.
Set oRng = Nothing
Set oSheet = Nothing
Set oWB = Nothing
Set oXL = Nothing

'quit
Exit Sub

Err_Handler:
  MsgBox WorkbookToWorkOn & " caused a problem. " & Err.Description, vbCritical, "Error: " _
  & Err.Number
  If ExcelWasNotRunning Then
      oXL.Quit
  End If

End Sub
Avatar billede rvm Nybegynder
10. december 2002 - 22:39 #5
Du kunne importer din makro fra Excel til Word. Ovenstående kode ligger faktisk op til det, idet er er oprettet et ExcelObjekt (oXL)

Det gøres således: Du skriver bare oXL. foran alle linierne i din Excel kode og kopier din ind i Word. F.eks.

oXL.Range("A1").select
Avatar billede baadsager-e-box.dk Nybegynder
11. december 2002 - 08:22 #6
Det virker perfekt tak skal du have!!
Avatar billede Slettet bruger
11. december 2002 - 14:32 #7
Selv tak, så lærte jeg også selv noget nyt :-)
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
Tag et kursus i Word og øg effektiviteten

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