Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn sử dụng thuộc tính vị trí hoặc vị trí. địa chỉ của ngắt trang dọc hoặc ngang trong phần macro Microsoft Visual Basic for Applications, bạn có thể nhận được thông báo lỗi sau đây:

Lỗi thời gian chạy ' 9 ': chỉ số dưới của phạm vi

Nguyên nhân

Vấn đề này có thể xảy ra nếu các điều kiện sau đây là đúng:

  • Ô hiện hoạt nằm trên dấu ngắt trang ngang hoặc ở bên trái của dấu ngắt trang dọc được gọi là chỉ mục Hpagebreaks hoặc vpagebreaks .

  • Vị trí ngắt trang dọc hoặc ngang nằm ngoài màn hình ở bên phải cửa sổ nhìn thấy hoặc bên dưới cửa sổ hiển thị của sổ làm việc.

  • Bạn sử dụng macro Visual Basic for Applications trong Microsoft Excel tương tự như mã sau đây:

    Sub TestHorizontal()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.HPageBreaks.Count    MsgBox ActiveSheet.HPageBreaks(1).Location.Address    MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd Sub Sub TestVertical()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.VPageBreaks.Count    MsgBox ActiveSheet.VPageBreaks(1).Location.Address    MsgBox ActiveSheet.VPageBreaks(2).Location.Address    MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub

Cách giải quyết

Microsoft cung cấp các ví dụ về lập trình chỉ cho hình minh họa mà không có bảo hành nào được thể hiện hoặc ngụ ý. Điều này bao gồm nhưng không giới hạn, các bảo đảm ngụ ý về khả năng bán hoặc thể dục cho mục đích cụ thể. Bài viết này giả định rằng bạn đã quen thuộc với ngôn ngữ lập trình được thể hiện và các công cụ được sử dụng để tạo và thủ tục gỡ lỗi. Kỹ sư hỗ trợ của Microsoft có thể giúp giải thích về các chức năng của một thủ tục cụ thể nhưng chúng sẽ không sửa đổi các ví dụ này để cung cấp thêm chức năng hoặc thủ tục dựng thêm để đáp ứng các yêu cầu cụ thể của bạn. Để tránh vấn đề này, hãy thêm mã để chọn ô cuối cùng được dùng trong trang tính trước khi mã sử dụng thuộc tính vị trí của dấu ngắt trang ngang hoặc dọc. Ví dụ, sử dụng mã sau đây để chọn ô cuối cùng, sử dụng thuộc tính vị trí , rồi chọn lại ô hiện hoạt gốc:

Sub CheckPageBreaks()    'Set object "currcell" equal to active cell.    Set currcell = ActiveCell        'Select the last cell on the worksheet that has data.    Range("IV65536").Select        'Include code with Location property here.    x = ActiveSheet.HPageBreaks(2).Location.Address    MsgBox x    'Example sets x equal to address of second horizontal page break.    'Then message box displays the address of the page break.        'Select original active cell.    currcell.SelectEnd Sub

Sau khi tính toán thuộc tính vị trí , bạn lại có thể chọn ô hiện hoạt gốc. Nếu bạn sử dụng mã để cuộn giữa ô đầu tiên và cuối cùng, hoặc chọn ô cuối cùng và ngay lập tức chọn lại ô bắt đầu, lỗi vẫn có thể xảy ra. Màn hình phải vẽ lại và thuộc tính vị trí được tính cho giải pháp thay thế để có hiệu lực. Nếu bạn sử dụng mã trên cùng với

Application.ScreenUpdating = False

để ngăn lại vẽ màn hình, vấn đề vẫn xảy ra.

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Thông tin Bổ sung

Nếu bạn dùng phương thức đếm với thuộc tính vpagebreaks hoặc hpagebreaks , bạn có thể nhận được kết quả bằng không. Điều này xảy ra trong các điều kiện được liệt kê trong phần "Cause". Nếu ngắt trang hiển thị, phương thức đếm có thể cung cấp câu trả lời đúng. Phương pháp đếm cho dấu ngắt trang dọc hoặc ngang có thể cho kết quả dự kiến nếu ngắt trang nằm gần phần có thể nhìn thấy được trong cửa sổ sổ làm việc. Giải pháp thay thế trước đây có thể được dùng để lấy số đếm dự kiến. Ngắt trang ở bên phải của cửa sổ sổ làm việc hoặc bên dưới cửa sổ sổ làm việc có thể cho phép phương thức đếm để làm việc và ngắt trang đó để được đặt, nếu khoảng cách từ cửa sổ đến dấu ngắt trang nhỏ hơn một nửa so với khoảng cách giữa các ngắt trang.

Tham khảo

Để biết thêm thông tin về cách bẫy lỗi trong macro, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:

213637 Cách dùng "on Error" để xử lý lỗi trong macro

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×