Tại sao tài liệu excel của tôi có 960.000 hàng trống?


13

Tôi có một tài liệu excel, Office 2007, trên máy Windows 7 (nếu phần đó có vấn đề gì thì tôi không chắc nhưng chỉ cần ném nó ra khỏi đó). Đây là danh sách tất cả các số điện thoại của nhân viên. Nếu tôi cần tạo một trang mới, tôi có thể nhấp vào trang 2 và bảng sẽ tự động tạo lại.

Vấn đề là, ai đó đã làm hỏng nó vì nó trên một ổ đĩa mạng và bây giờ cho thấy tôi có hơn 960.000 hàng dữ liệu, khi tôi thực sự không! Tôi đã thực hiện CTRL + END để xem có dữ liệu nào trong ô cuối cùng không, vì vậy tôi đã xóa nó, xóa hàng và cột đó, nhưng vẫn không sửa được. Có vẻ như nó tự nhân đôi sau khi xóa.

Làm cách nào để khắc phục điều này thay vì tạo lại toàn bộ tài liệu?


1
Bạn đã cố gắng khôi phục một bản sao lưu? Ngoài ra, bạn sẽ phải cung cấp thêm thông tin về những gì macro hoặc VBA đang làm để tạo một bảng mới. Bạn có thể đăng thông tin đó?
CharlieRB

@CharlieRB Khi tôi xem thêm tài liệu, tôi nhận ra rằng nó không tạo ra một bảng mới. Đó không phải là cái mà tôi đã tạo ban đầu, nó chỉ là một thiết lập viền trông giống như một cái bàn. Tôi đã cố gắng khôi phục bản sao lưu nhưng dường như sự cố đã xảy ra trước bản sao lưu tốt cuối cùng của nó. Nếu tôi đi đến hàng cuối cùng là 1.048.576 ... khi tôi cố gắng xóa hàng đó, thay vào đó là các ô được viền như ở đầu tài liệu.
C-dizzle

@CharlieRB Cuối cùng tôi đã quay lại và tạo lại tài liệu từ đầu, nhưng nó vẫn khiến tôi tự hỏi điều gì sẽ thay thế các ô trống bằng các đường viền mà tôi không đặt ở đó.
C-dizzle

Nếu đó là một tệp được chia sẻ, bạn có thể có ai đó nghĩ rằng cách định dạng các ô là thực hiện toàn bộ các cột tại một thời điểm, thay vì chỉ những gì cần thiết. Hoặc điều này được thực hiện nếu bạn là người duy nhất truy cập tệp, bây giờ?
datatoo

Câu trả lời:


14

Microsoft có một tài liệu hỗ trợ tuyệt vời có tên là Cách đặt lại ô cuối cùng trong Excel .

Từ tài liệu đó:

Nguyên nhân phổ biến nhất của ô cuối cùng được đặt bên ngoài phạm vi trang tính hiện đang sử dụng là định dạng quá mức. Khi bạn định dạng toàn bộ hàng và cột, một số loại định dạng có thể khiến ô cuối cùng được đặt thành một ô ở xa bên dưới hoặc bên phải của phạm vi thực tế đang sử dụng.

Dựa trên các ý kiến ​​bên dưới câu hỏi của bạn, có vẻ như định dạng đường viền được áp dụng cho tất cả các hàng là thủ phạm.

Tôi đã sử dụng mã từ bổ trợ được cung cấp từ liên kết ở trên để giảm kích thước tệp từ nhiều megabyte xuống vài trăm k.


Đang sử dụng excel2010 và nó không hoạt động, chỉ đơn giản là đưa ra lỗi "excel không thể hoàn thành nhiệm vụ này với các tài nguyên có sẵn. Chọn ít dữ liệu hoặc đóng các ứng dụng khác"
adolf tỏi

Các liên kết ở trên đã chết. @adolfgarlic thử giải pháp VBA
phuclv

@adolfgarlic Nó không hoạt động trên phiên bản 32 bit của Excel, nhưng trên phiên bản 64 bit không thực thi các giới hạn bộ nhớ tương tự. Than ôi, sau khi thay đổi phiên bản của tôi từ 32 thành 64 bit, giải pháp này chạy - nhưng không giải quyết được vấn đề.
t0mgs

@phuclv Khá sống, thực sự.
t0mgs

0

Ngoài ra, hãy kiểm tra xem có bất kỳ ô nào có chú thích trong đó hộp bình luận đã được kéo xuống xa khỏi ô không. Bạn có thể có một ô ở hàng thứ hai của bảng tính với một bình luận có hộp bình luận ở gần hàng 7000 và điều đó sẽ buộc excel coi hàng 7000 là hàng cuối cùng của bảng tính.


0

Giống như người bình luận ở trên - tôi gặp vấn đề tương tự với việc có hơn một triệu hàng trong tài liệu excel của tôi, gây ra bởi các bình luận kết thúc rất xa tế bào. Trang này có mã VBA dễ dàng mà bạn có thể sử dụng để dọn dẹp tài liệu của mình, sau đó bạn có thể xóa nó và lưu tài liệu mà không cần mã và vấn đề sẽ được khắc phục. https://www.extendoffice.com/document/excel/2252-excel-reset-comment-poseitions.html

Giữ các phím ALT + F11 để mở cửa sổ Microsoft Visual Basic for Application.

Bấm Chèn> Mô-đun và dán mã sau vào Cửa sổ Mô-đun.

Mã VBA: Đặt lại tất cả các vị trí nhận xét trong bảng tính hoạt động

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

Sau đó nhấn phím F5 để chạy mã này và tất cả các vị trí nhận xét trong trang tính đang hoạt động đã được đặt lại cùng một lúc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.