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!
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
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?
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!
Aihe on jo aika vanha, joten et voi enää vastata siihen.