Avatar billede Nicolai Ibsen Praktikant
06. juni 2019 - 22:51 Der er 6 kommentarer

VBA Fejl="Procedure for stor" (333kb/7200 linjer)

Hej,

Jeg håber der er én der ude som kan hjælpe med lidt af en hovedpine.

Jeg benytter et word doc med ca. 2400 bogmærker som input for excel fil, hvor data'en exporteres fra. Når jeg trigger makro'en modtager jeg fejlmeddelsen "procedure for stor/lang", og har forsøgt lidt metoder på nettet, men er ikke lige helt ferm nok til VBA til at jeg kan kombinere min kode for at transmittere data til word doc + kombinere moduler (eller sub procedurer).

Nogen her som har forstand på dette, og vil have lyst til at dele lidt info, så vil det være en stor hjælp.

Vh
Nicolai
Avatar billede Jan K Ekspert
06. juni 2019 - 23:09 #1
Tidligere varcder en begrænsning på procedurer til  64 kbl om det er ændret ved jeg ikke. Du er nødt til at kave en række mindre procedurer, som du så kalder på skift, men det er svært at sige præcis, hvordan det skal opdeles uden at kende detaljerne.
Avatar billede Dan Elgaard Ekspert
07. juni 2019 - 09:20 #2
7200 linjer?!?

Læser du dine bogmærker enkeltvis, fremfor gennem et loop???

Uanset, hvad, så er jeg 100% sikker på, at den kode kan optimeret helt vildt!
(Næh, jeg er faktisk 1000% sikker)
Avatar billede Nicolai Ibsen Praktikant
07. juni 2019 - 13:05 #3
Indrømmer gerne hurtigt at jeg ikke er ekspert på dette område, så det kan garanteres gøres meget smartere. herunder er hvad jeg har lavet blot med 2400 forskellige eksempler istedet for ét enkelt som ses herunder:

Option Explicit
Const FilePath As String = "C:\Users\username\Desktop\eksempel på mappe\"
Dim wd As New Word.Application

Sub ExportButton()

Dim doc As Word.Document
wd.Visible = True

Dim eksempel1 As String

eksempel1 = ThisWorkbook.Sheets(1).Range("a1").Value

Set doc = wd.Documents.Open(FilePath & "output.docx")
Copy2word "eksempel1", eksempel1

doc.Close

wd.Quit
'MsgBox "Created files in " & FilePath & "!"

End Sub
Sub Copy2word(BookMarkName As String, Text2Type As String)
'copy each cell to relevant Word bookmark
wd.Selection.GoTo What:=wdGoToBookmark, Name:=BookMarkName
wd.Selection.TypeText Text2Type
End Sub
Avatar billede Dan Elgaard Ekspert
07. juni 2019 - 13:32 #4
Det er lidt svært, at gennemskue, når man ikke har dit regneark og/eller Word-dokument, men umiddelbart ser det ud som om, at du netop laver dine bogmærker enkeltvis.

Hvis du har alle dine bogmærker i A-kolonnen, skal du IKKE læse dem med (noget i denne retning):

Dim eksempel1 As String
eksempel1 = ThisWorkbook.Sheets(1).Range("a1").Value
Dim eksempel2 As String
eksempel2 = ThisWorkbook.Sheets(1).Range("a2").Value
Dim eksempel3 As String
eksempel13= ThisWorkbook.Sheets(1).Range("a3").Value
Dim eksempel4 As String
eksempel4= ThisWorkbook.Sheets(1).Range("a4").Value
O.s.v.

...men, i stedet benytte noget i retning af:

Dim Counter As Long
Dim eksempel As String
For Counter = 1 To 4 ' Eller, hvor langt ned din bogmærke liste er
    eksempel = ThisWorkbook.Sheets(1).Range("a" & Counter).Value
    '  Gøre noget med bogmærket
Next
Avatar billede Nicolai Ibsen Praktikant
07. juni 2019 - 13:45 #5
Har mine data liggende i B10 - B401, C10 - C401, D10 - D813, E10 - E813.

Kan jeg så lave:
Dim Counter As Long
Dim eksempel As String
For Counter = 1 To 401 ' Eller, hvor langt ned din bogmærke liste er
    eksempel = ThisWorkbook.Sheets(1).Range("b" & Counter).Value

Dim Counter As Long
Dim eksempel As String
For Counter = 1 To 401 ' Eller, hvor langt ned din bogmærke liste er
    eksempel = ThisWorkbook.Sheets(1).Range("c" & Counter).Value

Dim Counter As Long
Dim eksempel As String
For Counter = 1 To 813 ' Eller, hvor langt ned din bogmærke liste er
    eksempel = ThisWorkbook.Sheets(1).Range("d" & Counter).Value

Dim Counter As Long
Dim eksempel As String
For Counter = 1 To 813 ' Eller, hvor langt ned din bogmærke liste er
    eksempel = ThisWorkbook.Sheets(1).Range("e" & Counter).Value

?
Avatar billede Nicolai Ibsen Praktikant
07. juni 2019 - 13:47 #6
Men hvordan fanger den så hvert enkelt bogmærke til rette lokation i word dokumentet.
Der er 2400 bogmærker mange forskellige steder i dokumentet
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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