Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Apua Excel-makroon?

Miisu [11.11.2007 10:18:07]

#

Yritän tehdä sellaista Excel-makroa, että valitaan kaikki työkirjan taulukot ja sitten kaikkien taulukoiden soluun C3 kirjoitetaan jotakin. En kuitenkaan osaa tehdä tätä oikein, sillä teksti tulee vain siihen taulukkoon, mikä oli valittuna ennen makron käynnistystä.

Tämmöistä yritin:

Sub XXX()
Range("C3").Select
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
ActiveCell.FormulaR1C1 = "jotakin"
Range("C4").Select
End Sub

Otan kiitollisena kaikki vinkit vastaan!

neau33 [11.11.2007 10:34:49]

#

Heippa Miisu!

kokeile tämän tapaista...

Sub XXX()
Dim ws As Worksheet
 For Each ws In Worksheets
  With ws
    .Activate 'with blokissa = ws.Activate jne.
     .Range("C3:C3").Select
     Set myDocument = Worksheets(.Name)
     myDocument.Shapes.SelectAll 'valitaan kaikki napit...kaaviot yms.
     ActiveCell.FormulaR1C1 = "jotakin"
     .Range("C4:C4").Select 'kokeile vaikkapa .Range("C4:J10").Select
   End With
 Next
  Set myDocumnent = Nothing 'tärkeä jutska (vapauttaa muistia)
End Sub

-Nea

Antti Laaksonen [11.11.2007 10:35:21]

#

Tässä on yksi ratkaisu, jos ymmärsin asian oikein:

For Each taulukko In Worksheets
    taulukko.Range("C3").Value = "jotakin"
Next

Tässä arvot vaihdetaan yksi kerrallaan jokaiseen C3-soluun.

Muoks. neau33 ehti ensin. Mikä tuo Shapes on?

Miisu [11.11.2007 10:48:36]

#

Löysin tuon Shapes-jutun Visual Basic Editorin helpistä. Siellä oli tämmöinen malli:

Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll

...ja näytti toimivan, eli kaikki taulukot tulivat valituksi. Silti en saanut tekstiä syntymään kuin yhteen, ennen makron käynnistystä avoinna olleeseen taulukkoon.

Suurkiitos neau33 ja Antti, molemmat ehdotukset toimivat loistavasti!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta