excelvan平板电脑_Cellák vagy tartományok kijelölése visual basic eljárásokkal az Excelben. - Office | Mi...

Cellák/tartományok kijelölése visual basic eljárásokkal az Excelben

2020. 03. 18.

6 perc alatt elolvasható

A következőre érvényes::

Excel for Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2010

A cikk tartalma

A Microsoft csak illusztrációként szolgál, kifejezett vagy hallgatólagos garancia nélkül. Ez magában foglalja, de nem kizárólagosan, a vélelmezett garanciát az eladhatóság vagy fitness egy adott célra. Ez a cikk feltételezi, hogy ismeri a bemutatandó programozási nyelvet és az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek egy adott eljárás működésének magyarázatában, de ezeket a példákat nem módosítják, hogy további funkciókat biztosítsanak, vagy eljárásokat építsenek ki az adott követelményeknek megfelelően. A cikkben ismertetett példák az alábbi táblázatban felsorolt Visual Basic metódusokat használják.

Method Arguments

------------------------------------------

Activate none

Cells rowIndex, columnIndex

Application.Goto reference, scroll

Offset rowOffset, columnOffset

Range cell1

cell1, cell2

Resize rowSize, columnSize

Select none

Sheets index (or sheetName)

Workbooks index (or bookName)

End direction

CurrentRegion none

A cikkben szereplő példák az alábbi táblázatban található tulajdonságokat használják.

Property Use

---------------------------------------------------------------------

ActiveSheet to specify the active sheet

ActiveWorkbook to specify the active workbook

Columns.Count to count the number of columns in the specified item

Rows.Count to count the number of rows in the specified item

Selection to refer to the currently selected range

Cella kijelölése az aktív munkalapon

Ha az aktív munkalapon a D5 cellát szeretné kijelölni, az alábbi példák egyikét használhatja:

ActiveSheet.Cells(5, 4).Select

-or-

ActiveSheet.Range("D5").Select

Cella kijelölése ugyanazon munkafüzet egy másik munkalapján

Ha ugyanabban a munkafüzetben egy másik munkalapon szeretné kijelölni az E6 cellát, az alábbi példák egyikét használhatja:

Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)

-or-

Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))

Vagy aktiválhatja a munkalapot, majd a fenti 1.

Sheets("Sheet2").Activate

ActiveSheet.Cells(6, 5).Select

Cella kijelölése egy munkalapon egy másik munkafüzetben

Ha egy másik munkafüzet munkaalapján az F7 cellát szeretné kijelölni, az alábbi példák egyikét használhatja:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)

-or-

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

Vagy aktiválhatja a munkalapot, majd a fenti 1.

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate

ActiveSheet.Cells(7, 6).Select

Cellatartomány kijelölése az aktív munkalapon

Az aktív munkalapC2:D10 tartományának kijelöléséhez az alábbi példák bármelyikét használhatja:

ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select

ActiveSheet.Range("C2:D10").Select

ActiveSheet.Range("C2", "D10").Select

or

ActiveSheet.Range(ActiveSheet.Cells(2, 3), ActiveSheet.Cells(10, 4)).Select

or, alternatively, it could be simplified to this:

Range(Cells(2, 3), Cells(10, 4)).Select

Cellatartomány kijelölése ugyanazon munkafüzet egy másik munkalapján

Ha egy munkafüzet egy másik munkaterén a D3:E11 tartományt szeretné kiválasztani, az alábbi példák egyikét használhatja:

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")

Vagy aktiválhatja a munkalapot, majd a fenti 4.

Sheets("Sheet3").Activate

ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

Cellatartomány kijelölése egy munkalapon egy másik munkafüzetben

Ha egy másik munkafüzet munkaalapján az E4:F12 tartományt szeretné kiválasztani, az alábbi példák egyikét használhatja:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")

Application.Goto _

Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")

Vagy aktiválhatja a munkalapot, majd a fenti 4.

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate

ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

Elnevezett tartomány kijelölése az aktív munkalapon

Ha az aktív munkalapon ki szeretné jelölni a "Teszt" nevű tartományt, az alábbi példák egyikét használhatja:

Range("Test").Select

Application.Goto "Test"

Elnevezett tartomány kijelölése ugyanazon munkafüzet egy másik munkalapján

Ha ugyanabban a munkafüzetben egy másik munkalapon ki szeretné jelölni a "Teszt" nevű tartományt, a következő példát használhatja:

Application.Goto Sheets("Sheet1").Range("Test")

Vagy aktiválhatja a munkalapot, majd a fenti 7.

Sheets("Sheet1").Activate

Range("Test").Select

Elnevezett tartomány kijelölése egy munkalapon egy másik munkafüzetben

Ha egy másik munkafüzet munkaalapján a "Teszt" nevű tartományt szeretné kiválasztani, a következő példát használhatja:

Application.Goto _

Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")

Vagy aktiválhatja a munkalapot, majd a fenti 7.

Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate

Range("Test").Select

Cella kijelölése az aktív cellához viszonyítva

Ha az aktív cellátkövető öt sorral és négy oszloppal balra lévő cellát szeretné kijelölni, a következő példát használhatja:

ActiveCell.Offset(5, -4).Select

Ha két sorral feljebb és az aktív celláttól jobbra lévő három oszloppal szeretne kijelölni, a következő példát használhatja:

ActiveCell.Offset(-2, 3).Select

Megjegyzés

Hiba történik, ha olyan cellát próbál kijelölni, amely "a munkalapon kívül" van. A fenti első példa hibát ad vissza, ha az aktív cella az A-tól D-ig oszlopban van, mivel négy oszlop balra mozgatása az aktív cellát érvénytelen cellacímre viszi.

Cella kijelölése egy másikhoz képest (nem az aktív) cellához viszonyítva

Ha a C7 celláttól öt sorral és négy oszloppal jobbra lévő cellát szeretné kijelölni, az alábbi példák egyikét használhatja:

ActiveSheet.Cells(7, 3).Offset(5, 4).Select

ActiveSheet.Range("C7").Offset(5, 4).Select

Cellatartomány eltolásának kiválasztása egy megadott tartományból

Ha olyan cellatartományt szeretne kijelölni, amely mérete megegyezik a "Teszt" nevű tartománysal, de négy sort lefelé, és három oszlopot jobbra tol, a következő példát használhatja:

ActiveSheet.Range("Test").Offset(4, 3).Select

Ha az elnevezett tartomány egy másik (nem az aktív) munkalapon található, először aktiválja azt a munkalapot, majd válassza ki a tartományt a következő példával:

Sheets("Sheet3").Activate

ActiveSheet.Range("Test").Offset(4, 3).Select

Adott tartomány kiválasztása és kijelölésének átméretezése

Az "Adatbázis" nevű tartomány kiválasztásához, majd a kijelölés öt sorból történő kiterjesztéséhez a következő példát használhatja:

Range("Database").Select

Selection.Resize(Selection.Rows.Count + 5, _

Selection.Columns.Count).Select

Adott tartomány kiválasztása, eltolása és átméretezése

Ha az "Adatbázis" nevű tartománytól jobbra négy sort és három oszlopot szeretne kijelölni, és két sort és egy oszlopot szeretne a névvel ellátott tartománynál, a következő példát használhatja:

Range("Database").Select

Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _

Selection.Columns.Count + 1).Select

Két vagy több megadott tartomány uniójának kiválasztása

A "Teszt" és a "Minta" nevű két elnevezett tartomány egyesítésének (azaz egyesített területének) kiválasztásához a következő példát használhatja:

Application.Union(Range("Test"), Range("Sample")).Select

Megjegyzés

hogy mindkét tartománynak ugyanazon a munkalapon kell lennie ahhoz, hogy ez a példa működjön. Vegye figyelembe azt is, hogy az uniós módszer nem működik a lapok között. Ez a sor például jól működik.

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

de ez a vonal

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))

a hibaüzenetet adja vissza:

Az alkalmazásosztály uniós metódusa nem sikerült

Két vagy több megadott tartomány metszéspontjának kijelölése

A "Teszt" és a "Minta" két elnevezett tartomány metszéspontjának kijelöléséhez a következő példát használhatja:

Application.Intersect(Range("Test"), Range("Sample")).Select

Ne feledje, hogy mindkét tartománynak ugyanazon a munkalapon kell lennie ahhoz, hogy ez a példa működjön.

A cikk ben szereplő 17–21. Minden példa a kiválasztott mintaadatok ban lévő cellatartományt jelöli.

A1: Name B1: Sales C1: Quantity

A2: a B2: $10 C2: 5

A3: b B3: C3: 10

A4: c B4: $10 C4: 5

A5: B5: C5:

A6: Total B6: $20 C6: 20

Összefüggő adatok oszlopának utolsó cellájának kijelölése

Egy összefüggő oszlop utolsó cellájának kijelöléséhez használja a következő példát:

ActiveSheet.Range("a1").End(xlDown).Select

Ha ezt a kódot használja a mintatáblával, az A4 cella lesz kiválasztva.

Az üres cella kijelölése a összefüggő adatok oszlopának alján

Az összefüggő cellák tartománya alatti cella kijelöléséhez használja a következő példát:

ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select

Ha ezt a kódot használja a mintatáblával, az A5 cella lesz kiválasztva.

Az oszlop összefüggő celláinak teljes tartományának kijelölése

Ha egy oszlopban egy összefüggő cellatartományt szeretne kijelölni, használja az alábbi példák egyikét:

ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select

-or-

ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _

End(xlDown).Address).Select

Ha ezt a kódot a mintatáblázattal használja, az A1–A4 cellák lesznek kiválasztva.

Nem összefüggő cellák teljes tartományának kijelölése egy oszlopban

Ha nem összefüggő cellatartományt szeretne kijelölni, használja az alábbi példák egyikét:

ActiveSheet.Range("a1",ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp)).Select

-or-

ActiveSheet.Range("a1:" & ActiveSheet.Range("a" & ActiveSheet.Rows.Count). _

End(xlUp).Address).Select

Ha ezt a kódot használja a mintatáblázattal, az A1–A6 cellákat jelöli ki.

A cellák téglalap tartományának kiválasztása

A cella körüli cellatéglalap tartomány kiválasztásához használja a CurrentRegion metódust. Az CurrentRegion metódus által kiválasztott tartomány olyan terület, amelyet üres sorok és üres oszlopok tetszőleges kombinációja határol. Az alábbi példa a CurrentRegion metódus használatát ismerteti:

ActiveSheet.Range("a1").CurrentRegion.Select

Ez a kód kiválasztja az A1–C4 cellákat. Az azonos cellatartomány kiválasztására az alábbi példák at soroljuk fel:

ActiveSheet.Range("a1", _

ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select

-or-

ActiveSheet.Range("a1:" & _

ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select

Bizonyos esetekben érdemes lehet az A1–C6 cellákat kijelölni. Ebben a példában a CurrentRegion metódus nem fog működni az 5. A következő példák az összes cellát kijelölik:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column

lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row

ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

-or-

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column

lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row

ActiveSheet.Range("a1:" & _

ActiveSheet.Cells(lastRow, lastCol).Address).Select

Több, különböző hosszúságú, nem összefüggő oszlop kijelölése

Több, eltérő hosszúságú, nem összefüggő oszlop kijelöléséhez használja az alábbi mintatáblázatot és makrópéldát:

A1: 1 B1: 1 C1: 1 D1: 1

A2: 2 B2: 2 C2: 2 D2: 2

A3: 3 B3: 3 C3: 3 D3: 3

A4: B4: 4 C4: 4 D4: 4

A5: B5: 5 C5: 5 D5:

A6: B6: C6: 6 D6:

StartRange = "A1"

EndRange = "C1"

Set a = Range(StartRange, Range(StartRange).End(xlDown))

Set b = Range(EndRange, Range(EndRange).End(xlDown))

Union(a,b).Select

Ha ezt a kódot használja a mintatáblázattal, az A1:A3 és a C1:C6 cellák lesznek kiválasztva.

Megjegyzések a példákhoz

Az ActiveSheet tulajdonság általában elhagyható, mert ez azt jelenti, ha egy adott lap nincs elnevezve. Például ahelyett, hogy

ActiveSheet.Range("D5").Select

használhatja:

Range("D5").Select

Az ActiveWorkbook tulajdonság általában kihagyható. Ha nincs elnevezve egy adott munkafüzet, az aktív munkafüzet hallgatólagosan megjelenik.

Az Application.Goto metódus használatakor, ha két cellametódust szeretne használni a Tartomány metóduson belül, ha a megadott tartomány egy másik (nem az aktív) munkalapon van, minden alkalommal meg kell adnia a Lapok objektumot. Például:

With ActiveWorkbook.Sheets("Sheet1")

Application.Goto .Range(.Cells(2, 3), .Cells(4, 5))

End With

Idézőjelek között lévő elemek (például a "Teszt" nevű tartomány) esetében olyan változót is használhat, amelynek értéke szöveges karakterlánc. Például ahelyett, hogy

ActiveWorkbook.Sheets("Sheet1").Activate

használhatja

ActiveWorkbook.Sheets(myVar).Activate

ahol a myVar értéke "Sheet1".

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值