Sửa lỗi Runtime error "6" Over flow

Liên hệ QC

vanle33

Thành viên gạo cội
Tham gia
30/10/08
Bài viết
5,866
Được thích
3,953
Giới tính
Nam
Tôi có file Nhật ký này nhưng khi nhấn Cap Nhat thì bị lỗi Runtime error "6" Over Flow. Mong các thành viên trợ giúp sửa lỗi trên cho tôi.

Do tôi không phải chủ nhân của file này nên không có pass VBA mà phải dùng Remove VBA ... của bác siwtom.
 

File đính kèm

  • Nhat ky.xls
    195 KB · Đọc: 43
Lần chỉnh sửa cuối:
Bạn giaiphap và langtuchungtinh360 : Đây là code trong sheet Nhatky
Dim TGmin As Double
Dim TGmax As Double
Dim Itg As Double


Public Sub HamDuyet()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim h As Integer
Dim g As Integer
For i = 15 To 400
Sheet4.Cells(i, 1).Value = ""
Sheet4.Cells(i, 2).Value = ""
Sheet4.Cells(i, 3).Value = ""
Sheet4.Cells(i, 4).Value = ""
Next i

TGmin = Sheet5.Cells(5, 6).Value
TGmax = Sheet5.Cells(6, 6).Value
Itg = TGmin
k = 14
g = 1
Do While Itg <= TGmax
i = 15
Sheet4.Cells(k, 1).Value = g
Sheet4.Cells(k, 2).Value = Itg
Sheet4.Cells(k, 4).Value = "Mua Công truong nghi"
j = 0
h = 0
Do While Sheet1.Cells(i, 1).Text <> "ket thuc"
' Phan nghiem thu
If Sheet1.Cells(i, 11).Value = Itg Then
Sheet4.Cells(k + j, 3).Value = Sheet1.Cells(i, 2).Value
Sheet4.Cells(k + j, 4).Value = "Nghiêm thu " + Sheet1.Cells(i, 3).Value
j = j + 1
h = 1
End If
'Phan thi cong
If (Sheet1.Cells(i, 6).Value <= Itg) And (Sheet1.Cells(i, 7).Value >= Itg) Then
Sheet4.Cells(k + j, 3).Value = Sheet1.Cells(i, 2).Value
Sheet4.Cells(k + j, 4).Value = "Thi công " + Sheet1.Cells(i, 3).Value
j = j + 1
h = 1
End If
i = i + 1
Loop
If h = 1 Then
j = j - 1
End If
Itg = Itg + 1
k = k + j + 1
g = g + 1
Loop
End Sub


Private Sub CapNhatNK_Click()
HamDuyet
End Sub
 
Upvote 0
Tôi có file Nhật ký này nhưng khi nhấn Cap Nhat thì bị lỗi Runtime error "6" Over Flow. Mong các thành viên trợ giúp sửa lỗi trên cho tôi.

Do tôi không phải chủ nhân của file này nên không có pass VBA mà phải dùng Remove VBA ... của bác siwtom.
Tại ô A102 ở sheet 01-Danh Muc sửa chữ "Kết thúc" thành "ket thuc" như trong code là được. Không thì anh sửa code theo ô A102.
 
Upvote 0
Tại ô A102 ở sheet 01-Danh Muc sửa chữ "Kết thúc" thành "ket thuc" như trong code là được. Không thì anh sửa code theo ô A102.
Chuẩn là chữ "ket thuc" đó bạn. Do mình tự sửa thành "Kết thúc" hiii
Mà sao ngày Kết thúc thi công công việc số 7 là 16/06/2015 mà bên Nhật ký chỉ chạy ra đến ngày 10/06/2015 bạn nhỉ?
 
Upvote 0
Chuẩn là chữ "ket thuc" đó bạn. Do mình tự sửa thành "Kết thúc" hiii
Mà sao ngày Kết thúc thi công công việc số 7 là 16/06/2015 mà bên Nhật ký chỉ chạy ra đến ngày 10/06/2015 bạn nhỉ?
em nghĩ chỗ này
Mã:
[COLOR=#000000]For i = 15 To 400[/COLOR]
[COLOR=#000000]Sheet4.Cells(i, 1).Value = ""[/COLOR]
[COLOR=#000000]Sheet4.Cells(i, 2).Value = ""[/COLOR]
[COLOR=#000000]Sheet4.Cells(i, 3).Value = ""[/COLOR]
[COLOR=#000000]Sheet4.Cells(i, 4).Value = ""[/COLOR]
[COLOR=#000000]Next i
[/COLOR]

thay bằng
Mã:
Sheet4.Range(Cells(15,1),Cells(400,4)).value=""
thì có lẽ nó sẽ nhanh hơn là duyệt qua 385x4 ô nhỉ
----------------------
rồi mấy chữ trong ngoặc kép "xxx" thì em nghĩ nếu trong biên bản có chữ đó thì cho nó bằng với value tại cells đó thì có lẽ chính xác hơn, cho dù biên bản có sửa đổi thì cũng không sai
 
Lần chỉnh sửa cuối:
Upvote 0
em nghĩ chỗ này
Mã:
Sheet4.Range(Cells(15,1),Cells(400,4)).value=""

Hình như là thế này: Sheet4.[A15:D400].Value=""
Mà sao ngày Kết thúc thi công công việc số 7 là 16/06/2015 mà bên Nhật ký chỉ chạy ra đến ngày 10/06/2015 bạn nhỉ?
Nhìn hông có hiểu nên hông có biết sửa sao luôn anh. Nếu tiện thì anh chỉ rõ nhật ký nó chạy ra nằm dòng nào. (Dòng 55 phải hông nhỉ?)
 
Lần chỉnh sửa cuối:
Upvote 0

Hình như là thế này: Sheet4.[A15:D400].Value=""

Nhìn hông có hiểu nên hông có biết sửa sao luôn anh. Nếu tiện thì anh chỉ rõ nhật ký nó chạy ra nằm dòng nào. (Dòng 55 phải hông nhỉ?)
thì tác giả muốn dùng cells thì em dùng cells thôi mà bác cũng bắt lỗi.
không lẽ em ghi vậy rồi mà em không biết nó là vùng A15:D400&&&%$R
 
Upvote 0
thì tác giả muốn dùng cells thì em dùng cells thôi mà bác cũng bắt lỗi.
không lẽ em ghi vậy rồi mà em không biết nó là vùng A15:D400&&&%$R
Mã:
Sheet4.[COLOR=#ff0000]Range[/COLOR](Cells(15,1),Cells(400,4)).value=""
Hehe. Thấy range rõ ràng cơ mà nên mới thò vô chứ./-*+/
P/s: Có câu nào nói là bạn hông biết đâu.
 
Upvote 0
Hehe. Thấy range rõ ràng cơ mà nên mới thò vô chứ./-*+/
P/s: Có câu nào nói là bạn hông biết đâu.
thì em nghĩ là chắc nghĩ em không biết.
do em không biết căn bản nên có thể ghi sai
vậy Sheet4.Range(Cells(15,1),Cells(400,4)).value=""
phải ghi thế nào để bỏ chữ Range đi luôn bác. ngoài vụ [ ] này
vì em có đọc ở đây
Mã:
[COLOR=#000000]Ngoài ra khi tham chiếu đến ô [/COLOR][B][COLOR=blue]A1[/COLOR], các bạn có thể dùng code
Cách 1:Code:
Range("A1")
hoặc 
Cách 2:Code:
[A1]
Trong hai cách ở trên, cách 2 ngắn gọn hơn nhưng sẽ chậm hơn cách 1.
nguồn [/B]http://www.giaiphapexcel.com/forum/showthread.php?21361-Tăng-tốc-cho-code-VBA-của-bạn
như thế ghi [] thì code sẽ chậm
 
Upvote 0
tôi nói là bạn không biết nó là vùng A15:D400 đấy , có ý kiến mời vào đây giao lưu

Mã:
Sub code()
Range(Cells(15, 1), Cells(400, 4)).Value = 8888
End Sub
nó ghi 8888 từ A15:D400 đấy thôi bác.
----------------------------------------
topic người ta vào chém gió hoài. chắc bị đình chỉ hoạt động quá
 
Upvote 0
tôi nói là bạn không biết nó là vùng A15:D400 đấy , có ý kiến mời vào đây giao lưu

Hí hí, Kể từ hồi viết VBA tới giờ Ít bao giờ (có thể chưa bao giờ) mình viết kiểu vầy

Mã:
 [COLOR=#000000][COLOR=#000000][I]Sheet4.[/I][/COLOR][/COLOR][COLOR=#ff0000][B][I]Range[/I][/B][COLOR=#000000][I][B](Cells(15,1),Cells(400,4)[/B][/I][/COLOR][/COLOR][COLOR=#000000][COLOR=#000000][I]).value=""
[/I]Cứ toàn là Range("Ax:Dx") hoặc [Ax:Dx]
Mình lạc hậu quá chăng....[/COLOR][/COLOR]
 
Upvote 0
Mã:
Sub code()
Range(Cells(15, 1), Cells(400, 4)).Value = 8888
End Sub
nó ghi 8888 từ A15:D400 đấy thôi bác.
----------------------------------------
topic người ta vào chém gió hoài. chắc bị đình chỉ hoạt động quá
cách viết này với cách viết trước của bạn đã thay đổi rồi
sao bạn không dám ghi là
Sheet4.Range(Cells(15, 1), Cells(400, 4)).Value = 8888
nữa ta ?
 
Upvote 0
Hí hí, Kể từ hồi viết VBA tới giờ Ít bao giờ (có thể chưa bao giờ) mình viết kiểu vầy

Mã:
 [COLOR=#000000][COLOR=#000000][I]Sheet4.[/I][/COLOR][/COLOR][COLOR=#ff0000][B][I]Range[/I][/B][COLOR=#000000][I][B](Cells(15,1),Cells(400,4)[/B][/I][/COLOR][/COLOR][COLOR=#000000][COLOR=#000000][I]).value="" [/I][/COLOR][/COLOR]
Cứ toàn là Range("Ax:Dx") hoặc [Ax:Dx]
Mình lạc hậu quá chăng....
chắc là có mình em viết vậy quá.
à. đúng là code trên sai thật, mới nhìn ra
Mã:
 [COLOR=#000000][COLOR=#000000][I]Sheet4.[/I][/COLOR][/COLOR][COLOR=#ff0000][B][I]Range[/I][/B][COLOR=#000000][I][B]([/B][/I][/COLOR][/COLOR][I]Sheet4.[/I][COLOR=#ff0000][COLOR=#000000][I][B]Cells(15,1),[/B][/I][/COLOR][/COLOR][I]Sheet4.[/I][COLOR=#ff0000][COLOR=#000000][I][B]Cells(400,4)[/B][/I][/COLOR][/COLOR][COLOR=#000000][COLOR=#000000][I]).value="" [/I][/COLOR][/COLOR]
thì nó mới làm việc trên sheet4 được.
có thể có nhiều cách chọn vùng khác mà em chưa biết chăng
ghi [xxxxx] em đọc được thì nghe là code sẽ chạy chậm nên hạn chế dùng.
còn ghi Ax:Dy thì cũng được. nhưng em đang tập làm quen R1C1 nên chơi vậy.
 
Upvote 0
cách viết này với cách viết trước của bạn đã thay đổi rồi
sao bạn không dám ghi là
Sheet4.Range(Cells(15, 1), Cells(400, 4)).Value = 8888
nữa ta ?
tại code trên là dùng cho sheet4 mà bác. câu trên em sửa lại rồi.
cứ thích bắt lỗi mấy con gà như em
(@$%@
 
Upvote 0
...
như thế ghi [] thì code sẽ chậm

[] là ký hiệu viết tắt của hàm Evaluate. Mõi lần gặp [] thì VBA phải gọi hàm Evaluate ra để tính cái bên trong nó và trả về range. Vì vậy nó hơi chậm hơn chiếu thẳng vào thuộc tính Range. Tuy nhiên, cái chậm đó rất nhỏ, chả đáng phải lo. Điểm quan trọng là [] chỉ hoạt động với hằng số (bên trong nó phải là hằng số). Cho nên sử dụng nó thì code được gọi là code cứng.
 
Upvote 0
chắc là có mình em viết vậy quá.
à. đúng là code trên sai thật, mới nhìn ra
Mã:
 [COLOR=#000000][COLOR=#000000][I]Sheet4.[/I][/COLOR][/COLOR][COLOR=#ff0000][B][I]Range[/I][/B][COLOR=#000000][I][B]([/B][/I][/COLOR][/COLOR][I]Sheet4.[/I][COLOR=#ff0000][COLOR=#000000][I][B]Cells(15,1),[/B][/I][/COLOR][/COLOR][I]Sheet4.[/I][COLOR=#ff0000][COLOR=#000000][I][B]Cells(400,4)[/B][/I][/COLOR][/COLOR][COLOR=#000000][COLOR=#000000][I]).value="" [/I][/COLOR][/COLOR]
thì nó mới làm việc trên sheet4 được.
có thể có nhiều cách chọn vùng khác mà em chưa biết chăng
ghi [xxxxx] em đọc được thì nghe là code sẽ chạy chậm nên hạn chế dùng.
còn ghi Ax:Dy thì cũng được. nhưng em đang tập làm quen R1C1 nên chơi vậy.

Mời đồng chí đọc cái này sẽ vỡ ra được tí. Anh Lê Văn Duyệt vừa chia sẽ tối qua trên GPE: http://www.giaiphapexcel.com/dienda...g-thức-Evaluate-Understanding-Evaluate-Method
 
Upvote 0


Nhìn hông có hiểu nên hông có biết sửa sao luôn anh. Nếu tiện thì anh chỉ rõ nhật ký nó chạy ra nằm dòng nào. (Dòng 55 phải hông nhỉ?)
Tôi thấy nguyên tắc của viết Nhật ký từ sheet Danh muc là :
Sheet Danh muc có nội dung công việc nào thì sẽ đều được lọc (tất cả) sang sheet Nhat ky. Nếu nhiều việc trong 1 ngày thì bên sheet Nhat ky có nhiều việc trên ngày. Thời gian thi công từ bắt đầu đến kết thúc thì bên sheet Nhat ky công việc đó sẽ được copy cho nhiều ngày từ ngày bắt đầu đến ngày kết thúc.
Ngày nghiệm thu sẽ là sự kết hợp giữa cột H và cột I và cột K. Ví dụ : 17/05/2015 : 14h30 - 17h30 Nghiệm thu công việc "Xây móng đá hộc VXM M50#"
Ngày yêu cầu là cột J : 15/06/2015 : Yêu cầu nghiệm thu "Xây móng đá hộc VXM M50#"

p/s: Ngày 17/05 ở trên đang sai quy trình --=0 do đây chỉ là ví dụ ngày chính xác phải là 17/06
 
Upvote 0
Web KT
Back
Top Bottom