Just nu i M3-nätverket
Gå till innehåll

Fel typning av WS i Excel VBA?


Tommy H
 Share

Rekommendera Poster

Hej!

Jag får inte rätt ws av någon anledning som jag inte ser.

Anta att jag står i en och samma wb men på ett annat blad än ws1 eller ws2.

jag får inte koden att hamna på rätt blad.

Vad gör jag för fel?

    Dim Ws1, Ws2 As Worksheet
    Set Ws1 = Worksheets("SUMMERING")
    Set Ws2 = Worksheets("LAGERUTT STD")
    With Ws1
        Range("A10:A100") = ""
        Range("C4:F5") = ""
        Range("C6:E6") = ""
        Range("G6") = ""
        Range("G7") = ""
        Columns("H:H").ColumnWidth = 15
        PageSetup.PrintArea = "$A$1:$H$100"
    End With
    
    Ws2.Range("C3").Select

Här på sista raden så vill jag hamna vid körd kod, men det blir inte så!

Länk till kommentar
Dela på andra webbplatser

38 minuter sedan, skrev Tommy H:

Hej!

Jag får inte rätt ws av någon anledning som jag inte ser.

Anta att jag står i en och samma wb men på ett annat blad än ws1 eller ws2.

jag får inte koden att hamna på rätt blad.

Vad gör jag för fel?

    Dim Ws1, Ws2 As Worksheet
    Set Ws1 = Worksheets("SUMMERING")
    Set Ws2 = Worksheets("LAGERUTT STD")
    With Ws1
        Range("A10:A100") = ""
        Range("C4:F5") = ""
        Range("C6:E6") = ""
        Range("G6") = ""
        Range("G7") = ""
        Columns("H:H").ColumnWidth = 15
        PageSetup.PrintArea = "$A$1:$H$100"
    End With
    
    Ws2.Range("C3").Select

Här på sista raden så vill jag hamna vid körd kod, men det blir inte så!

Inne i en WITH-sats ska raderna börja med . (punkt), alltså .range("A10:A100") annars refererar range() till det aktuella bladet.

 

  • Gilla 1
Länk till kommentar
Dela på andra webbplatser

Hmmm....

Jo, det förklarar ju inne i With-satsen, men lika förbaskat så ska jag ju hamna i cell C3 på LAGERUTT STD bladet då koden har snurrat genom!

Det känns inte som om raderna

    Set Ws1 = Worksheets("SUMMERING")
    Set Ws2 = Worksheets("LAGERUTT STD")

typas rätt utan dom ignoreras...

Har jag kommit åt någon inställning?

Har jag problem med att det finns flera olika makron i modulen som även dom innehåller ws1 & ws2?

Länk till kommentar
Dela på andra webbplatser

10 timmar sedan, skrev Tommy H:

Ws2.Range("C3").Select

Här på sista raden så vill jag hamna vid körd kod, men det blir inte så!

Har inget bra svar på varför det inte fungerar för dig, men du kan testa följande.

Spela in ett makro där du markerar ett område i bladet SUMMERING. Därefter byter du till bladet LAGERUTT STD där du sedan klickar i cellen C3.

 

Stoppa därefter inspelningen av makrot och kolla hur koden ser ut som genererats. Kanske går det att se något i den genererade koden som du kan applicera på din egen kod för att få cell C3 bli markerad i bladet LAGERUTT STD då du kör din egen kod.

Länk till kommentar
Dela på andra webbplatser

Hej!

Prova med följande kod

Dim Ws1, Ws2 As Worksheet
Set Ws1 = Worksheets("SUMMERING")
Set Ws2 = Worksheets("LAGERUTT STD")
With Ws1
	.Range("A10:A100") = ""
	.Range("C4:F5") = ""
	.Range("C6:E6") = ""
	.Range("G6") = ""
	.Range("G7") = ""
	.Columns("H:H").ColumnWidth = 15
	.PageSetup.PrintArea = "$A$1:$H$100"
End With

Ws2.Select
Range("C3").Select

Vet inte exakta orsaken, men kör jag din kod får jag felmeddelande på din rad med Ws2.Range("C3").Select

Bryter jag upp det i 2 rader fungerar det då jag testkör koden i Excel.

 

Länk till kommentar
Dela på andra webbplatser

Hmmm...

Ok, men det är väl lite konstigt!

Jag blir lite konfunderad dock när jag stegar koden, så kan man ju se med muspekaren vilka värden som kommer i koden, men det dyker inte upp några för Ws1 & Ws2.

Det kanske inte fungerar på den typen av variabler...

Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...