Avatar billede askims Nybegynder
25. maj 2001 - 15:22 Der er 20 kommentarer og
2 løsninger

Udkommatering af specialtegn i vba

Hej

Hvordan udkommater man tegn som = og \" i en text. I java kan man udkommaterer tegn vha \\

Jeg skal have indsat flg. formel i en celle

=dnext(\"database:liste\";A1)

ASKIMS
Avatar billede janvogt Praktikant
25. maj 2001 - 16:00 #1
Mener du, som i en indholdsfortegnelse:
1. Indholdsfortegnelse ........................... 5

Er det sådan en udkommatering du ønsker i en celle?


Avatar billede askims Nybegynder
25. maj 2001 - 16:28 #2
Yderligere forklaring:

Den ovenstående formel skal stå i celle A2. Det formlen gør er at returnere det næste element i database listen. Men når jeg erklærer cellens \"værdi\" i vba, som dette
 
  ActiveCell.value = \"=dnext(\"database:liste\";A1)\"

skriver vba kompileringsfejl ventede: slutningen af sætningen, hvor så database er markeret i ovenstående sætning

Hvis jeg erklærer database:liste som en variabel kommer flg fejlmeddelelse: kørselsfejl\"1004\", der opstod en programdefineret eller objektdefineret fejl.

Hensigten med makroen er at lave dynamiske rapporter. Min foreløbige løsning er, at have ovenstående formel til at stå i en celle som jeg så kopiere ned.
Avatar billede janvogt Praktikant
25. maj 2001 - 19:44 #3
Virker denne her?

ActiveCell.Formula = \"=dnext(\"database:liste\";A1)\"


Avatar billede askims Nybegynder
28. maj 2001 - 09:44 #4
Den har jeg også prøvet med samme resultat.
Avatar billede janvogt Praktikant
28. maj 2001 - 09:52 #5
En række funktioner, f.eks. SUM-funktionen kan jeg godt indsætte via VBA, men denne her går tilsyneladende ikke.

Jeg kan ikke finde DNEXT i min funktionsliste i XL97.
Ligner den DGET?
Avatar billede janvogt Praktikant
28. maj 2001 - 12:15 #6
Jeg har nu fundet ud af, at indsætte alle Excels funktioner i VBA.
Men formatet i din formel ser forkert ud. Virker den i alm. Excel?

Semikolon mellem argumenter skal udskiftes med komma.

Prøv:
ActiveCell.Formula = \"=dnext(\"database:liste\",A1)\"
eller
ActiveCell.Formula = \"=dnext(database:liste,A1)\"

Jeg kan få DGET-funktionen til at virke med:
ActiveCell.Formula = \"=DGET(Data,$B$1,$D$1:$D$2)\"

Den laver opslag i din database med formen: =DGET(Database,Field,Kriteria)

Avatar billede askims Nybegynder
29. maj 2001 - 10:42 #7
janvogt - desværre

Database programmet er et datawarehouse-produkt som hedder TM1, og det kører som et tilføjelsesprogram til XL. Den vil ikke accepterer andre skrivemåder, end den jeg skrev.

Jeg kan selvfølgelig lave alle specialtegnene (gåseøjne, lig med tegn, semikolon) i forskellige celler i xl og kopierer dem ind, men så kan jeg lige så godt bibeholde min nuværende løsning. Hvor formlen står i en celle og kopiere denne ned.

ASKIMS
Avatar billede nih Novice
30. maj 2001 - 11:10 #8
Kan du ikke bruge chr() funktion - Ansi tabellen

eks:
strTest = \"dette er et anførselstegn \" & chr(32)

Jeg har lavet et loop, der retunere alle ansitegnene:

Sub Ansitegn()
  For i = 1 To 200
    Cells(i, 2) = Chr(i)
  Next i
End Sub

Niels
Avatar billede askims Nybegynder
30. maj 2001 - 14:36 #9
nih -> når du skriver \"dette er et anførselstegn\" hvorfor indsætter du så <space>, hvis det er gåseøjne du vil indsætte skulle man nok prøve med chr(34):)....

Udmærket tankegang det vil blive prøvet af indenfor overskuelig fremtid!
02. juni 2001 - 12:05 #10
askims har du prøvet på denne her måde ?

ActiveCell.FormulaR1C1 = \"=\"\"Tekst\"\"\"

I cellens formel står der  =\"Tekst\"  og i cellen står der  Tekst

Håber det hjælper - Flemming
Avatar billede askims Nybegynder
06. juni 2001 - 07:33 #11
nih -> macroen reagerer på samme måde når man bruger funktionen Chr(34) som hvis man selv skriver tegnet \".

flemmingdahl -> så mangler jeg bare at få den til at acceptere tegnene ( : ) jf. spørgsmålet
06. juni 2001 - 08:30 #12
Det er der vel ingen forskel på, da : skal i \"\" - eller er der noget jeg overser ?
ActiveCell.FormulaR1C1 = \"=\"\"Tekst\"&\":\"\"\"
17. juni 2001 - 13:57 #13
askims -> er spørgsmålet lukkeklart eller ?
Avatar billede janvogt Praktikant
17. juni 2001 - 21:36 #14
Så længe kolon ligger inden for anførselstegnene, jvf. de eksempler jeg har vist ovenfor, burde der ikke være nogen problemer.
I princippet burde der kunne indsættes hvad som helst.
26. juni 2001 - 14:29 #15
>>>askims - fik du løst denne her ?
Avatar billede askims Nybegynder
28. juni 2001 - 10:09 #16
Hvordan kan man få dette til at stå i cellen

=dnext(\"database:liste\";A1)

Jeg er åbenbart en klovn mht til de gåseøjne, for jeg kan ikke få det til at virke!
Avatar billede janvogt Praktikant
28. juni 2001 - 10:15 #17
Hvis din databaseformel virker:
(jeg har tidligere nævnt, at semikolon muligvis skal udskiftes med komma)

ActiveCell.FormulaR1C1 = \"=dnext(\"database:liste\";A1)\"
28. juni 2001 - 10:15 #18
ActiveCell.FormulaR1C1 = \"=dnext(\"\"database:liste\"\",A1)\"
28. juni 2001 - 10:17 #19
En anden måde er med relative referencer her er ActiveCell = E5 således referencen smutter 4 rækker op og 4 kolonner til venstre - hvilket er ligmed A1 :-)

ActiveCell.FormulaR1C1 = \"=dnext(\"\"database:liste\"\",R[-4]C[-4])\"
28. juni 2001 - 10:37 #20
En lille finte som jeg ofte benytter er, at lave formlen i Excel helt færdig, som jeg vil have den. Så starter jeg makro båndoptageren, og trykker F2 for at redigere min færdige formel og så enter for at acceptere den, hvorefter jeg stopper båndoptageren. Det er for nemt.
Avatar billede askims Nybegynder
28. juni 2001 - 10:48 #21
Hvorfor vælge den nemme oplagte løsning, når man kan vælge den svære (og spørge jer :))
28. juni 2001 - 13:35 #22
Hehe :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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