Xin cho hỏi lỗi Overflow trong file.xla của mình là gì?

Liên hệ QC

ongtrungducmx25

Thành viên gạo cội
Tham gia
5/2/07
Bài viết
2,077
Được thích
1,986
Nghề nghiệp
GV
xin cho hỏi file.xla của mình bị lỗi gì?

khi mở bảng tính lên mình phủ toàn khối và chọn font,timenewroment sau đó chọn menu điều khiển/nhập điểm thì lại bị lỗi như sau "Overflow!"
 

File đính kèm

  • Overflow.rar
    60.6 KB · Đọc: 109
Lần chỉnh sửa cuối:
Lỗi như bcá nói thì tôi chưa thấy, nhưng nếu chọn Nhập điểm và nhập vào ô của Bảng thống kê học sinh vùng dân tộc thì báo lỗi chỗ này
Cells(i, k).Value = diem
 
Upvote 0
-Lỗi này do bị tràn bộ nhớ. Lỗi xảy ra do bạn chưa bỏ chọn toàn bảng tính sau khi đã chỉnh font. Khi bạn kích hoạt form nhapdiem, code trong Sub UserForm_Initialize() sẽ chạy. Các biến trong đó như:
----------------k = ActiveCell.Column
----------------c = Application.Selection.Columns.Count
----------------r = Application.Selection.Rows.Count
được khai báo integer trong khi vùng chọn quá lớn nên xảy ra tràn bộ nhớ.
-Cách khắc phục: Bỏ chọn trước khi kích hoạt form hoặc khai báo lại các biến.
 
Upvote 0
Lôic "Overflow" thường xảy ra khi một biến nhận mọt giá trị nằm ngoài khoảng giá trị cho phép của nó. Bản hayc kiểm tra lại khai báo của biến.
Mã:
Sub Test_ErrOverflow()
Dim Value As Integer [COLOR="SeaGreen"]'Value nhận giá trị trong khoảng 32,768 - 32,767[/COLOR]
   Value = 32768 [COLOR="Red"]'-->Lỗi vì nhận giá trị ngoài khoảng (Runtime error '6': Overflow)[/COLOR]
End Sub
 
Upvote 0
zây mình phải sửa như thế nào chỉ mình với!
 
Upvote 0
-Đơn giản nhất là sau khi chọn font xong, bạn click để bỏ chọn toàn bảng tính. Lỗi sẽ không xảy ra.
-Còn nếu muốn khai báo lại biến, bạn thay kiểu integer bằng kiểu Long.
 
Upvote 0
nhưng lúc này mình cung nhập được điểm nó báo lỗi luôn rồi biết làm sau đây khai báo gì bạn làm giúp mình nhé không hiểu lắm
 
Upvote 0
-Bạn đã nhập được điểm? Vậy lỗi trên vì sao khắc phục được? Có làm theo cách của mình không?
-Nó báo lỗi luôn. Có nghĩa là thường xuyên xảy ra lỗi. Vậy bạn phải nêu cụ thể: Lỗi xảy ra lúc nào? Báo lỗi gì? (Trường hợp trên bạn đã nêu rất rõ ràng)
-Hình như trong file của bạn có nhiều đoạn code thừa. Nó không phải là file dạng Addin nên không cần phải để đuôi xla.
 
Upvote 0
voda đã viết:
-Bạn đã nhập được điểm? Vậy lỗi trên vì sao khắc phục được? Có làm theo cách của mình không?
-Nó báo lỗi luôn. Có nghĩa là thường xuyên xảy ra lỗi. Vậy bạn phải nêu cụ thể: Lỗi xảy ra lúc nào? Báo lỗi gì? (Trường hợp trên bạn đã nêu rất rõ ràng)
-Hình như trong file của bạn có nhiều đoạn code thừa. Nó không phải là file dạng Addin nên không cần phải để đuôi xla.

thật sự là khi vào nhập điểm thì nó báo lỗi thường xuyên làm khó chịu lắm còn file.xls ở dạng này thì không báo lỗi gì cả
 

File đính kèm

  • bangdiem.rar
    58.3 KB · Đọc: 32
Upvote 0
mình muốn tạo ra file.xla có kèm thêm các sheet của mình nữa có được không!
 
Upvote 0
ongtrungducmx25 đã viết:
mình muốn tạo ra file.xla có kèm thêm các sheet của mình nữa có được không!
chỉ kèm theo để tham chiếu giá trị chứa trong các sheet đó thôi, không làm việc trực tiếp với các sheet trong XLA .
 
Upvote 0
Bạn mở cửa sổ code của file Overflow.xla. Vào trang code của form Nhapdiem. Tìm đến thủ tục Private Sub UserForm_Initialize(), thêm đoạn code này vào:(màu đỏ)
i = ActiveCell.Row
ii = i
k = ActiveCell.Column
kk = k
 
Upvote 0
cái form nhập điểm này khi mình chọn vùng nhập điểm (hệ số) thì phải thoát ra rồi sau đố vào lại thì mới nhập được đỉêm , chứ phủ khối thì nhập bình thường, mình chọn trên form nhập điểm vào điểm thì thì cũng zậy cũng thoát ra sau đó lại vào thì nó mới cho nhập!(chú ý mình dùng macro chọn vùng nhập hệ sô và nhập điểm thi) tại sau zậy
 

File đính kèm

  • Overflow01.rar
    63.5 KB · Đọc: 28
Lần chỉnh sửa cuối:
Upvote 0
-Chương trình của bạn đòi hỏi nhập điểm trên form phải phủ khối trước khi form hiển thị. Vì như thế các biến i, ii, k, kk mới được gán giá trị. Khi các biến này chưa có giá trị, hoặc chỉ có 1 ô được chọn, bạn nhập điểm vào, form sẽ biến mất.
-Bạn click vào nút hệ số để chọn vùng nhập điểm. Lúc bấy giờ biến chưa được gán giá trị, nên form biến mất. Khi form hiển thị trở lại, các biến được gán giá trị, chương trình hoạt động bình thường.
 
Upvote 0
zây cách khắc phụ như thế nào zậy "voda" mình muốn chọn nút hệ số là nhập luôn không cần phải thoát ra mới vào lại rồi nhập!thank
 
Upvote 0
Bạn mở cửa sổ code của file Overflow1.xla. Vào trang code của form Nhapdiem. Tìm đến thủ tục Private Sub chon_click(), thêm đoạn code này vào:(màu đỏ)
Private Sub chon_Click()
Range("D9:L52").Select
Range("D9:L52,O9:W52").Select
Range("D9").Activate
i = ActiveCell.Row
ii = i
k = ActiveCell.Column
kk = k
c = Application.Selection.Columns.Count
r = Application.Selection.Rows.Count
End Sub
 
Upvote 0
cái này của pác chỉ nhập được hệ số của học kì một thôi, còn hệ số học kì hai thì không được, nhập xong thì nó dừng lại luôn, không tiếp tục nhập vào học kì hai nữa là sau zậy nhỉ
 
Upvote 0
Đó là giới hạn vốn có trong chương trình của bác. Bác thử lấy file cũ ( trước khi thêm code), nhập thử xem. Để việc sử dụng cho đơn giản, bác nên chọn từng học kỳ để nhập điểm. Còn muốn chọn và nhập cả 2 học kỳ thì phải chỉnh sửa lại chương trình.
 
Upvote 0
file cuả mình có chỉnh sửa lại đôi chúa bạn xem nhé!
 

File đính kèm

  • bangdiemhs.rar
    57.2 KB · Đọc: 29
Upvote 0
Cải tiến như thế là hợp lý. Theo mình nên tạo vùng chọn nhập điểm học kỳ và cả điểm thi ngang bằng với số học sinh hiện có. Vùng chọn lớn hơn số học sinh sẽ gây bất tiện trong việc nhập điểm.
 
Upvote 0
Web KT
Back
Top Bottom