Avatar billede Mathias- Nybegynder
07. januar 2012 - 02:25 Der er 9 kommentarer og
1 løsning

tjek om arknavn indeholder "...."

Hej,

jeg vil tjekke om det aktive ark indeholde "dag"

If Sheets(ActiveSheet.Name) = Sheets("dag*") Then
MsgBox "Ja"
else
msgbox "nej"
end if

Det er tydeligvis noget galt, men kan ikke lige gennemskue hvordan jeg skal skrive det?
Avatar billede Ialocin Novice
07. januar 2012 - 09:51 #1
Hej Mathias

Prøv følgende procedure:

Sub SøgIArknavn()
Dim arknavn As String

'sæt arknavn = navnet på det aktive sheet
arknavn = ActiveSheet.Name

'søg arknavn for strengen "dag" - start ved det 1. tegn
  If InStr(1, arknavn, "dag", vbTextCompare) Then
 
    MsgBox "Ja"
   
  Else
   
    MsgBox "nej"

  End If


End Sub


Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
07. januar 2012 - 10:26 #2
Hej Mathias

Tilføjelser:
Ovenstående InStr(1, arknavn, "dag", vbTextCompare)søger efter "dag" i variablen arknavn uafhængig af store og små bogstaver.

Ønsker du søgning på enten store eller små bogstaver ?, så ta´ evt. et kig på følgende:
http://www.automateexcel.com/2004/08/14/excel_vba_find_text_in_a_string_instr/


Du kan også få startplaceringen af "dag" i arknavn ?
Hvis "dag" findes i arknavn, så returnerer InStr værdien for startplaceringen af "dag" i arknavn ... hvis "dag" ikke findes i arknavn returnerer InStr værdien 0

Prøv:
'vis startplacering for ordet "dag"
MsgBox InStr(1, arknavn, "dag", vbTextCompare)



Med venlig hilsen, Nicolai
Avatar billede KurtOA Praktikant
07. januar 2012 - 10:32 #3
Hej Mathias - denne makro bruger en "for next" så der søges på alle placeringer i sheetname.

Sub testsheetname()

Dim chk As String
Dim testtext As String
testtext = "dag"
chk = "Nej"

For x = 1 To Len(ActiveSheet.Name)
If InStr(x, ActiveSheet.Name, testtext) > 0 Then chk = "Ja"
Next

MsgBox chk



End Sub
Avatar billede KurtOA Praktikant
07. januar 2012 - 11:02 #4
Rettelse:
Nicolai har fat i den lange ende - den bør vel også checke for teksten hvis der er brugt store bogstaver. Det gør denne tilrettede version.

mvh Kurt


Sub testsheetname()

Dim chk As String
Dim testtext As String
testtext = "dag"
chk = "Nej"

For x = 1 To Len(ActiveSheet.Name)
If InStr(x, ActiveSheet.Name, testtext, vbTextCompare) > 0 Then chk = "Ja"
Next

MsgBox chk

End Sub
Avatar billede Ialocin Novice
07. januar 2012 - 11:23 #5
#3
Hvorfor bruge en for-next løkke ?
Kigger InStr ikke på alle tegn i den ønskede tekststreng ?

Med venlig hilsen, Nicolai
Avatar billede KurtOA Praktikant
07. januar 2012 - 12:50 #6
ad #4
Du har ret det var en tanketorsk
- følgende kan gøre det:-)

Sub testsheetname()

Dim chk As String
Dim testtext As String
testtext = "dag"
chk = "Nej"

If InStr(1, ActiveSheet.Name, testtext, vbTextCompare) > 0 Then chk = "Ja"

MsgBox chk

End Sub
Avatar billede Mathias- Nybegynder
07. januar 2012 - 16:48 #7
tak skal i have.
Vil I dele pointene?
Avatar billede Ialocin Novice
07. januar 2012 - 16:56 #8
Hej Mathias

Det er op til dig ... Hvilken løsning har du valgt ??

Med venlig hilsen, Nicolai
Avatar billede Mathias- Nybegynder
07. januar 2012 - 17:06 #9
Løsningerne er så at sige ens, og du var først..

Smid da et svar :-)
Avatar billede Ialocin Novice
07. januar 2012 - 17:13 #10
Hej Mathias

Skal jeg være ærlig ... så må det også være således!
Hermed et svar.

Og tak for det :o)

Med venlig hilsen, Nicolai
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