emosbaek Skrevet 21. juni 2015 Del Skrevet 21. juni 2015 (endret) Hei, Ekstremt fersk i VBS og C# kodoing men forsøker å lære. Har nå holdt på frem og tilbake i forsøk på å legge til egen tekst (som jeg tenker burde vært noe av det enkleste) i en eksisterende kode jeg har fått. Dette er et script som jeg benytter i Excel for å lete igjennom tekst for så hente IPadressen til høyre i raden. Men ønsker å legge til tekst foran IP'en jeg henter ut, men skjønner ikke hva jeg gjør galt. Sub TB_Script() Dim x, xx, ProsessorIP, PanelIP, i As Long, StrRows1 As String, StrRows2 As String With [A1].CurrentRegion x = .Value xx = Application.Transpose(.Columns(3).Value) For i = LBound(xx) To UBound(xx) If Trim(Left(xx(i), 3)) = "RMC" Then StrRows1 = StrRows1 & i & Chr(32) ElseIf Trim(Left(xx(i), 3)) = "TSW" Then StrRows2 = StrRows2 & i & Chr(32) End If Next i ProsessorIP = Application.Index(x, Application.Transpose(Split(Trim(StrRows1))), 5) PanelIP = Application.Index(x, Application.Transpose(Split(Trim(StrRows2))), 5) With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32)))).Value = ProsessorIP .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With End With End Sub Her er hva jeg har forsøkt. (Teksten jeg prøver å sette inn er "TCP") With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32)))).Value = "TCP" & ProsessorIP .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32))"TCP")).Value = ProsessorIP .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32)))).Value = 'TCP' + ProsessorIP .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With Endret 21. juni 2015 av emosbek Lenke til kommentar
ahw_ Skrevet 21. juni 2015 Del Skrevet 21. juni 2015 (endret) Ikke at jeg har mye peiling på VB, men i hvert fall noe er klart. ProsessorIP er av typen Long, og du kan ikke bare blande dette sammen med String.I stedet for... "TCP" & ProsessorIP Prøv noe som... "TCP" & ProsessorIP.ToString() .. Hvis det er .NET, eller hvis det ikke er .NET.. "TCP" & CStr(ProsessorIP) Endret 21. juni 2015 av ahw_ Lenke til kommentar
emosbaek Skrevet 21. juni 2015 Forfatter Del Skrevet 21. juni 2015 Takk for svar. Men ser ikke ut til å fungere :/ Lenke til kommentar
ahw_ Skrevet 21. juni 2015 Del Skrevet 21. juni 2015 Tror du må forklare litt nærmere hva som indikerer at det ikke fungerer som du forventer. La oss ta det helt fra starten. Får du noen feilmeldinger? Lenke til kommentar
emosbaek Skrevet 21. juni 2015 Forfatter Del Skrevet 21. juni 2015 Tror du må forklare litt nærmere hva som indikerer at det ikke fungerer som du forventer. La oss ta det helt fra starten. Får du noen feilmeldinger? Feilmeldingen sier 'Type mismatch' Lenke til kommentar
ahw_ Skrevet 21. juni 2015 Del Skrevet 21. juni 2015 Er det 100% sikkert at du får den meldingen pga. endringen jeg foreslo, eller det du allerede har prøvd? Det fungerer altså helt fint uten endringene du har gjort? Lenke til kommentar
emosbaek Skrevet 21. juni 2015 Forfatter Del Skrevet 21. juni 2015 (endret) Er det 100% sikkert at du får den meldingen pga. endringen jeg foreslo, eller det du allerede har prøvd? Det fungerer altså helt fint uten endringene du har gjort? Benytter jeg denne kommer feilmeldingen With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32)))).Value = "TCP" & CStr(ProsessorIP) .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With Benytter jeg denne kommer det ikke noe melding og ting blir eksportert. With Sheets("Toolbox") .[L20].Resize(UBound(Split(StrRows1, Chr(32)))).Value = ProsessorIP .[L51].Resize(UBound(Split(StrRows2, Chr(32)))).Value = PanelIP .Select End With Endret 21. juni 2015 av emosbek Lenke til kommentar
Harald Staff Skrevet 27. juni 2015 Del Skrevet 27. juni 2015 Hei Når vi er inne i Excel koder vi i VBA. Ikke C#, ikke VBscript, ikke .NET. Jeg klarer ikke helt dekode verken oppsettet eller koden. Men feilen er tydeligvis en mismatch mellom typer, og her kommer et VBA-fenomen: Dim x, xx, ProsessorIP, PanelIP, i As Long Long er et 32bits heltall i VBA. Og det er nærliggende å tro at vi har fem sånne her. Men nei, x, xx, ProsessorIP, PanelIP er Variant, mens det bare er bare i som er Long. Måten å deklarere er Dim x As Long, xx As Long, ProsessorIP As Long, PanelIP As Long, i As Long Variant i VB er "Pointers on stereiods" og kan dermed inneholde nesten hvasomhelst. En standard IP i formatet 222.222.222.222 vil være en String, ikke et heltall. Beste hilsen Harald Lenke til kommentar
ahw_ Skrevet 27. juni 2015 Del Skrevet 27. juni 2015 Skal huske på å holde meg så langt unna VB/VBA/VBS osv. som overhodet mulig for å unngå slik selvpining. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå