Kezdőlap › Fórumok › Excel programozás › Hivatkozás
- This topic has 2 hozzászólás, 3 résztvevő, and was last updated 11 years, 10 months telt el by
horvimi.
-
SzerzőBejegyzés
-
2014-01-31-07:56 #1376
Sziasztok,
Még kezdő excel makrozo vagyok. Szeretnék egy makróban egy másik munkalapon egy kijelölést formázni az alábbi tartomány használattal:
Sheets(„InvAct”).Range(Cells(3 + i, 1), Cells(3 + i, 1 + j))
Ha az aktív munkalap a fenti, akkor a makrot kézzel indítva lefut, de ha másik munkalapról indítom a makrot, akkor hibával elszáll.
Kérlek ha tudtok ebben segíteni írjátok meg.
Előre is köszönöm szíves segítségeteket.
Üdv: Zoli
2014-02-04-11:25 #1380nálam a következő gyakorlat alakult ki:
mindig deklarálom a változókat, egy tartomány az egy range típusú objektum, aminek az apja a sheet, annak az apja meg workbook. ezért fentről lefelé deklarálok változókat, amiket után inicializálok, így biztos lehetek abban, hogy függetlenül attól, hogy hol vagyok, a változóra hivatkozva ugyanoda jutok.kb, így (másold be egy modulba és jobban fogod látni):
Sub formatRange()
‘wb a változó neve a típusa workbook
Dim wb As Workbook
Dim sht As Worksheet
Dim wArea As Range‘változók hierarchikus inicializálása
Set wb = Workbooks(„AmibenAzInvActSheetVan.xlsx”) ‘a nyitott workbookok közül az x nevű
Set sht = wb.Sheets(„InvAct”)
Set wArea = sht.Range(Cells(3 + i, 1), Cells(3 + i, 1 + j))
‘ha több formázási művelet van érdemes így
With wArea
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
‘ha csak egy akkor:
‘wArea.HorizontalAlignment = xlCenter
End Sub2014-02-04-13:55 #1385Nekem ez vált be:
Ha csak annyit írsz, hogy Cells(x,y), az az aktív sheet Cells gyűjteményét jelenti. Mert nem adod meg, hogy mihez tartozik.
Csináltam két próbát:
Sub proba()
With Sheets(„InvAct”).Range(Sheets(„InvAct”).Cells(3, 1), Sheets(„InvAct”).Cells(10, 1))
.Value = „valami”
End WithEnd Sub
————————————————-
Sub proba_1()Set sh = Sheets(„InVact”)
Set r = sh.Range(sh.Cells(3, 1), sh.Cells(10, 1))
With r
.Value = „valami”
End WithEnd Sub
Mind kettő megy tökéletesen.
Tehát a Cells() előtt definiálni kell, hogy melyik lap Cells gyűjteményével dolgozol.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
