Avatar billede -l_jogge_l- Nybegynder
22. september 2003 - 15:09 Der er 15 kommentarer og
1 løsning

Søg, Find, Erstat <NAVN> i EXCEL fra VB.

JEg vil høre om man kan få VB til at gå ind i et EXCEL ark og søge efter eks <NAVN> og indsætte noget text fra en textbox eller ligende????
Avatar billede stefanfuglsang Juniormester
22. september 2003 - 15:18 #1
Hvis du kan kalde en VBA procedure som ser sådan ud:
Sub test(NewVal)
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange
        If cell = "<NAVN>" Then
          cell = NewVal
          exit for
        End If
    next
End Sub
Avatar billede -l_jogge_l- Nybegynder
22. september 2003 - 15:20 #2
Ja... en VBA, men hvad nu hvis det er en VB 6.0 program jeg gerne vil smide det ovre fra???? Der står måske "IB PERDERSEN" i en Textbox.... og vil gern erstatte <NAVN>.....
Avatar billede stefanfuglsang Juniormester
22. september 2003 - 15:30 #3
jeg har fundet følgende :
      Option Explicit

      Private Sub Command1_Click()
      Dim oExcelApp As Object

      ' Create a reference to the currently running excel application
      Set oExcelApp = GetObject(, "Excel.application")
      ' Make the Excel Application Visible.
      oExcelApp.Visible = True
      ' Run the excel procedure
      oExcelApp.run "proc", "David", 30
      End Sub
           
det kan måske bruges til at kalde ovenstående procedure - der er måske en mere direkte måde.
Se i øvrigt http://www.xldennis.com/mskbartiklar.htm
Avatar billede -l_jogge_l- Nybegynder
22. september 2003 - 15:52 #4
Jamen der er den jo igen... vil det sige at jeg SKAL oprette en MACRO i Excel'en før det virker???
Avatar billede -l_jogge_l- Nybegynder
22. september 2003 - 15:55 #5
Jeg har nemlig denne kode til WORD! Kan man ikke gøre det samme med EXCEL???
--------------------------------------------------------------------
Set WordDoc = objWord.Documents.Add(App.Path & "\1.doc")

Dim objWordApp
Set objWordApp = CreateObject("Word.Application")
objWordApp.Visible = True
objWordApp.Documents.Open (App.Path & "\1.doc")

objWordApp.Selection.Find.Execute "<TEST>", False, False, False, False, False, True, wdFindContinue, False, Text2.Text, 2
Avatar billede bak Forsker
22. september 2003 - 17:44 #6
Sub FindOgErstat()
      Dim oExcelApp As Object
      Dim NyTekst As String
      Set oExcelApp = CreateObject("excel.Application")
      NyTekst = "Ib Petersen"
      oExcelApp.Visible = True
      oExcelApp.Workbooks.Open "C:\test2.xls"
      oExcelApp.Cells.Replace What:="<NAVN>", Replacement:=NyTekst, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
End Sub
Avatar billede -l_jogge_l- Nybegynder
23. september 2003 - 08:29 #7
Sådanne Bak!!!...... så er der point!
Avatar billede -l_jogge_l- Nybegynder
23. september 2003 - 08:38 #8
Liiiiige.... et lille spm mere.... jeg smider selvfølgelig flere point i hvis det kan løses!!

HVIS nu vi siger at vi vil erstatte ca. 50 ord, og mand smider dem i eks et par textboxe og XLS arket bliver åbnet for erstatte dem, men NOGEN af dem IKKE findes i XLS arket, kan man å bare få dem til at gå videre med erstatningen, istedet for at den kommer med en fejlmeldning´???

Det er lidt trældt hvis man skal trykke ok 25 gange, hvis ordene ikke lige er i dokumentet!!!
Avatar billede -l_jogge_l- Nybegynder
24. september 2003 - 15:48 #9
Kan det ikke lade sig gøre eller hvad?
Avatar billede bak Forsker
24. september 2003 - 18:25 #10
jo, jo s'føli kan det lade sig gøre, men hvordan er din søg og erstat ord lagret ?
Prøv lige at vise det, så fikser jeg den.

imens kan du lige teste denne

Sub FindOgErstat()
      Dim oExcelApp As Object
      Dim NyTekst As String
      Set oExcelApp = CreateObject("excel.Application")
      NyTekst = "Ib Petersen"
      oExcelApp.Visible = True
      oExcelApp.Workbooks.Open "C:\test2.xls"
      oExcelApp.DisplayAlerts = False
      oExcelApp.Cells.Replace What:="<NAVN>", Replacement:=NyTekst, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
End Sub
Avatar billede -l_jogge_l- Nybegynder
25. september 2003 - 08:54 #11
Den ser sådan her ud:
-----------

Dim oExcelApp As Object
      Dim NyTekst As String
      Set oExcelApp = CreateObject("excel.Application")
      oExcelApp.Workbooks.Open (App.Path & "\1.xls")
      NyTekst = "Ib Petersen"
      oExcelApp.Visible = True
      oExcelApp.Cells.Replace What:="<NAVN>", Replacement:=NyTekst, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Avatar billede -l_jogge_l- Nybegynder
25. september 2003 - 09:08 #12
Hey BAK..... den virker sgu... tak tak... så få lige trykket på svar så du kan få dine point!
Avatar billede -l_jogge_l- Nybegynder
25. september 2003 - 09:53 #13
BAK: Du lyder til at have lidt meget forstand på det her... måske vil du gerne hjælpe mig med en anden opgave.... jeg giver gerne 200 point for den????
Avatar billede martin_moth Mester
25. september 2003 - 18:56 #14
Stil du nu bare spørgsmålet først :o)
Avatar billede bak Forsker
25. september 2003 - 20:46 #15
jeg smider lige et svar... :-)
Avatar billede -l_jogge_l- Nybegynder
26. september 2003 - 10:47 #16
Jeg har fået det til at virke..... men point til dig!
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