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 SubOtan 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"
NextTä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.