Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 4
  • 111

Czy można na nieaktywnej zakładce operować komórkami specjalnymi, czyli np: xlLastCell, xlDown, xlToRight?

Chodzi m.in. o wykorzystanie ich do np definicji obszaru:

Range(Selection, Selection.End(xlDown)).Select

Szymon_Siemiaszko
  • Zapytał
  • @ Szymon_Siemiaszko | 02.06.2014
    • lider
    • laureat
    • 18
    • 7
    • 30

Odpowiedzi (2)

  • 0

Problem w tym kodzie nie leży w samym stosowaniu komórek specjalnych, tylko w:

- próbie zaznaczenie komórek w arkuszu nieaktywnym,

- odwołania się do obiektu Selection dla nieaktywnego arkusza (podobnie nie można odwołać się do ActiveCell dla arkusza nieaktywnego).

Przykład działającego kodu (dla arkusza nieaktywnego), gdzie stosujemy komórki specjalne:

MsgBox Range(Worksheets("Sheet1").Range("A1"), Worksheets("Sheet1").Range("A1").End(xlDown)).Count

Proszę zwrócić uwagę, że za każdym razem, gdy odwołujemy się do komórek tego nieaktywnego arkusza (u mnie nazwanego "Sheet1"), musimy użyć Worksheets("Sheet1") przed Range(...).

  • Odpowiedział
  • @ | 03.06.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Faktycznie troszkę chybiony przykład. Chodzi mi o wyczyszczenie nieaktywnej zakładki przy wykorzystaniu komórek specjalnych. taki kod działa:
Worksheets("wyniki").Range("A2:F" & WorksheetFunction.CountA(Worksheets("wyniki").Range("A:A"))).Clear
ale taki już nie
Worksheets("wyniki").Range(Worksheets("wyniki").Range("A2"), Worksheets("wyniki").Range("A1").SpecialCells(xlLastCell).Row).Clear
Skomentował : @ Szymon_Siemiaszko ,03.06.2014
  • 18
  • 7
  • 30
no i generalnie byłoby dużo prościej gdyby używał Pan własnych zmiennych obiektowych typu Worksheet i Range
Skomentował : @ TRENER ALTKOM AKADEMII ,12.01.2015
  • 0

W odpowiedzi na Pana komentarz - nie działa, ponieważ napisał Pan .Row, co jest liczbą całkowitą, podczas gdy drugi parametr Range oczekuje na obiekt typu Range lub adres komórki. Proszę usunąć .Row i będzie działać. Problem jest więc niezwiązany z kwestią nieaktywnego arkusza ani SpecialCells.

  • Odpowiedział
  • @ | 03.06.2014
  • TRENER ALTKOM AKADEMII
Komentarze
:) no tak próbowałem zwrócić numer wiersza tak jak w tym działającym przykładzie - sklejenie adresu komórki. Faktycznie bez .Row działa :) dziękuję
Skomentował : @ Szymon_Siemiaszko ,03.06.2014
  • 18
  • 7
  • 30