Dlaczego mój dokument programu Excel ma 960 000 pustych wierszy?


13

Mam dokument programu Excel 2007, Office 2007, na komputerze z systemem Windows 7 (jeśli ta część ma jakiekolwiek znaczenie, nie jestem pewien, ale po prostu ją tam wyrzucam). Jest to lista wszystkich numerów telefonów pracowników. Jeśli muszę wygenerować nową stronę, mogę kliknąć na stronę 2, a tabela automatycznie wygeneruje się ponownie.

Problem polega na tym, że ktoś coś pomieszał, ponieważ znajduje się na dysku sieciowym, a teraz pokazuje, że mam ponad 960 000 wierszy danych, a tak naprawdę nie! Zrobiłem CTRL + END, aby zobaczyć, czy jakieś dane znajdują się w ostatniej komórce, więc wyczyściłem je, usunąłem ten wiersz i kolumnę, ale nadal go nie naprawiłem. Wygląda na to, że po usunięciu duplikuje się.

Jak mogę to naprawić zamiast odtwarzać cały dokument?


1
Czy próbowałeś przywrócić kopię zapasową? Będziesz także musiał podać więcej informacji o tym, co robi makro lub VBA, aby wygenerować nową tabelę. Czy możesz opublikować te informacje?
CharlieRB

@CharlieRB Gdy spojrzałem bardziej na dokument, zdałem sobie sprawę, że nie generuje on nowej tabeli. To nie był ten, który pierwotnie stworzyłem, to było po prostu ustawienie obramowania, które wyglądało jak stół. Próbowałem przywrócić kopię zapasową, ale najwyraźniej problem pojawił się przed ostatnią dobrą kopią zapasową. Jeśli przejdę do ostatniego wiersza, który wynosi 1 048 576 ... kiedy próbuję usunąć ten wiersz, zamiast niego znajdują się graniczne komórki, jak na początku dokumentu.
C-dizzle

@CharlieRB Skończyło się na tym, że wracałem i od nowa tworzyłem dokument od zera, ale wciąż zastanawiam się, co wciąż zastępuje puste komórki granicami, których tam nie umieszczam.
C-dizzle

Jeśli jest to plik udostępniony, być może ktoś myśli, że sposobem formatowania komórek jest robienie całych kolumn naraz, a nie tylko tego, co jest potrzebne. Czy jest to zrobione, jeśli tylko Ty masz teraz dostęp do pliku?
datatoo

Odpowiedzi:


14

Microsoft ma doskonały dokument pomocy technicznej o nazwie Jak zresetować ostatnią komórkę w programie Excel .

Z tego dokumentu:

Najczęstszą przyczyną ustawienia ostatniej komórki poza aktualnie używanym zakresem arkusza roboczego jest nadmierne formatowanie. Podczas formatowania całych wierszy i kolumn niektóre typy formatowania mogą spowodować, że ostatnia komórka zostanie ustawiona na komórkę znacznie poniżej lub na prawo od aktualnie używanego zakresu.

Na podstawie komentarzy pod twoim pytaniem z pewnością wydaje się, że winowajcą jest format ramki zastosowany do wszystkich wierszy.

Użyłem kodu z dodatku dostarczonego z powyższego linku, aby zmniejszyć rozmiary plików z wielu megabajtów do kilkuset k.


Korzystam z programu excel2010 i to nie działa, po prostu wyświetla błąd „program Excel nie może wykonać tego zadania przy użyciu dostępnych zasobów. Wybierz mniej danych lub zamknij inne aplikacje”
czosnek Adolfa

Powyższy link nie działa. @adolfgarlic wypróbuj rozwiązanie VBA
phuclv

@adolfgarlic Nie działa w 32-bitowej wersji programu Excel, ale działa w wersji 64-bitowej, która nie wymusza takich samych ograniczeń pamięci. Niestety, po zmianie mojej wersji z 32 na 64 bity, to rozwiązanie działa - ale nie rozwiązuje problemu.
t0mgs

@phuclv Właściwie to całkiem żywy.
t0mgs

0

Sprawdź także, czy są jakieś komórki z komentarzami, w których pole komentarza zostało przeciągnięte daleko od komórki. Możesz mieć komórkę w drugim wierszu arkusza kalkulacyjnego z komentarzem, którego pole komentarza znajduje się w pobliżu wiersza 7000, co zmusi program Excel do traktowania wiersza 7000 jako ostatniego wiersza arkusza kalkulacyjnego.


0

Podobnie jak komentator powyżej - miałem ten sam problem z ponad milionem dodatkowych wierszy w moim dokumencie programu Excel, spowodowanym przez komentarze, które znalazły się naprawdę daleko od komórki. Ta strona ma łatwy kod VBA, którego można użyć do wyczyszczenia dokumentu, a następnie można go usunąć i zapisać dokument bez kodu, a problem zostanie rozwiązany. https://www.extendoffice.com/documents/excel/2252-excel-reset-comment-positions.html

Przytrzymaj klawisze ALT + F11, aby otworzyć okno Microsoft Visual Basic for Applications.

Kliknij Wstaw> Moduł i wklej następujący kod w oknie modułu.

Kod VBA: Zresetuj wszystkie pozycje komentarzy w aktywnym arkuszu

1 Sub ResetComments()
2 'Update 20141110
3 Dim pComment As Comment
4 For Each pComment In Application.ActiveSheet.Comments
5   pComment.Shape.Top = pComment.Parent.Top + 5
6   pComment.Shape.Left = pComment.Parent.Offset(0, 1).Left + 5
7 Next
8 End Sub

Następnie naciśnij klawisz F5, aby uruchomić ten kod, a wszystkie pozycje komentarzy w aktywnym arkuszu zostały zresetowane jednocześnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.