Koniec tabeli z poziomu VBA

Anonimowe
2012-02-15T10:52:28+00:00

Mam skoroszyt Excela z zabezpieczonym arkuszem. Potrzebna jest mi informacja i ilości wierszy i nie  mam problemu - Ctrl+End przenosi mnie do ostatniego wiersza tabeli. To samo polecenie wykonane z poziomu VBA powołuje wyświetlenie komunikatu, że wykonanie tej procedury w zabezpieczonym arkuszu nie jest możliwe. Czy naprawdę tak ma być? Co może być tego przyczyną? Czy problem może tkwić w tym, że widoczna jest tylko część arkusza czyli sama tabela? Nie wiem, co znajduje się w komórkach poza tabelą. I jak w takim razie odczytać ilość wierszy w tabeli z poziomu VBA?

Microsoft 365 i pakiet Office | Excel | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy
Odpowiedź zaakceptowana przez autora pytania
Anonimowe
2012-03-20T17:35:12+00:00

W zabezpieczonych arkuszach nie można używać polecenia wykonującego operację Ctrl+End tj ActiveCell.SpecialCells(xlLastCell).Select. Należy odbezpieczyć arkusz, co może być związane np. z podaniem hasła, a w powyższym poleceniu VBA nie można tego uwzględnić, co wiąże się z użyciem np. ActiveSheet.Unprotect(Password).

Więcej na ten temat znajdziesz w "XL2000: Run-Time Error Message Occurs When Using SpecialCells Method with Protection" na stronie http://support.microsoft.com/kb/213203

Czy ta odpowiedź była pomocna?

Komentarze: 0 Brak komentarzy
Odpowiedź zaakceptowana przez autora pytania
Anonimowe
2012-03-18T09:32:14+00:00

Możesz uruchomić poniższy kod:

<CODE>

Dim myCol As Integer, myRow As Long

myCol = ActiveSheet.UsedRange.Columns.Count

myRow = ActiveSheet.UsedRange.Rows.Count

ActiveSheet.Cells(myRow, myCol).Select

MsgBox ActiveSheet.Cells(myRow, myCol).Address(False, False)

</CODE>

Więcej na temat wyboru zakresów znajdziesz w "Jak wybrać zakresy pomocą języka Visual Basic for Applications" na stronie http://support.microsoft.com/kb/291304/pl

Czy ta odpowiedź była pomocna?

Komentarze: 0 Brak komentarzy

Dodatkowe odpowiedzi: 5

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2012-02-17T15:01:25+00:00

    Nie wiem czy gdzieś tam nie występuje próba edycji albo jakiegoś dziwnego zaznaczenia komórki w tym kodzie, chociaż mi to wygląda na definiowanie prostej funkcji.

    Doradzam zapytać no www.wss.pl w dziale Platform Office System -> Office System

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Anonimowe
    2012-02-17T14:37:05+00:00

    Niestety, ale właśnie ta opisana w linku  formuła nie działa mi z poziomu VBA - czyli wpisana w module VBA Excela. Otrzymuję komunikat, że w zabezpieczonym arkuszu nie jest to możliwe.

    Arkusz jest zabezpieczony hasłem przed zmianami.

    Ja akurat nie chcę tu nic zmieniać ani edytować, ale w kodzie VBA potrzebna jest mi liczba wierszy - do odczytu i dalszego wykorzystania (inne makra w tym samym skoroszycie działąją bez problemu). W samym arkuszu , naciskając CTRL+END - bez problemu przechodzę na koniec.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Anonimowe
    2012-02-17T13:47:46+00:00

    Witaj marzatela

    Nie wiem czy o to dokładnie Ci chodzi ale może tutaj znajdziesz poprawny sposób wykonania takiej czynności:

    http://www.excelforum.com/excel-programming/477770-ctrl-end-with-vba.html

     Określ co rozumiesz przez poziom VBA. Czy robisz to wciąż w excelu ? I w jaki sposób dokładnie zabezpieczyłęś ten arkusz ?

    Dodatkowe informacje na temat tego co wolno a czego nie wolno w zabezpieczonych arkuszach znajdziesz tutaj:

    http://office.microsoft.com/pl-pl/excel-help/omowienie-zabezpieczen-i-ochrony-w-programie-excel-HP005238854.aspx

    Pozdrawiam


    Jeśli moja odpowiedź jest rozwiązaniem, którego szukałeś, pamiętaj proszę aby kliknąć poniższy przycisk „Oznacz”.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy