Lỗi 2015 trong lập trình VBA excel

Lỗi 2015 trong lập trình VBA excel

Thưa ngài

Tôi đang viết một chương trình VBA trong excel để so sánh chênh lệch thời gian và nếu chênh lệch hơn 01 phút thì nên tô sáng. Chương trình hoạt động hoàn hảo nhưng khi thay vì thời gian trong một cột thì là #VALUE! thì chương trình báo lỗi 2015. Chương trình được đưa ra bên dưới

Thống kê phụ1()
Bộ đếm Dim là số nguyên
Bộ đếm = Cells(Rows.Count, "A").End(xlUp).Row
tôi = 3
LÀM
tôi = tôi + 1
diff01 = 0
khác biệt02 = khác biệt01
number1 = Cells(i, 2).Giá trị
number2 = Cells(i, 4).Giá trị
numbera = Cells(i, 3).Value
diff01 = số2 - số1
diff01 = Định dạng(diff01, "hh:mm:ss")
diff02 = numbera - number2
diff02 = Định dạng(diff02, "hh:mm:ss")
Nếu diff01 >= "00:01:00" Và diff01 <= "00:05:00" Và diff02 >= "00:01:00" Và diff02 <= "00:05:00" Thì

Cells(i, 4).Interior.ColorIndex = 20
Cells(i, 7).Interior.ColorIndex = 20

Nếu không thì nếu diff01 > "00:05:00" và diff01 > "00:05:00" thì

Cells(i, 4).Interior.ColorIndex = 24
Cells(i, 7).Interior.ColorIndex = 24

Khác

'không làm gì cả
Cells(i, 4).Interior.ColorIndex = 0
Cells(i, 7).Interior.ColorIndex = 0

Kết thúc nếu

Vòng lặp While i < Bộ đếm

Kết thúc Sub

00:00:01 00:00:00 00:00:00
#GIÁ TRỊ! 00:00:22 00:00:21
00:00:18 00:00:20 00:00:19
00:00:05 00:00:05 00:00:07

Xin hãy giúp đỡ để nó không báo lỗi và chuyển đến ô tiếp theo.




Trả lời:

Bạn có thể để mã kiểm tra giá trị lỗi:

Thống kê phụ1()
Dim i Như Số Nguyên
Bộ đếm Dim là số nguyên
Mờ số1, số2, sốa, diff01, diff02
Bộ đếm = Cells(Rows.Count, "A").End(xlUp).Row
tôi = 3
LÀM
tôi = tôi + 1
diff01 = 0
khác biệt02 = khác biệt01
' *** Kiểm tra giá trị lỗi ***
Nếu IsError(Cells(i, 2).Value) Hoặc IsError(Cells(i, 4).Value) Hoặc _
IsError(Cells(i, 3).Value) Sau đó
' Bỏ qua hàng này
Khác
number1 = Cells(i, 2).Giá trị
number2 = Cells(i, 4).Giá trị
numbera = Cells(i, 3).Value
diff01 = số2 - số1
diff01 = Định dạng(diff01, "hh:mm:ss")
diff02 = numbera - number2
diff02 = Định dạng(diff02, "hh:mm:ss")
Nếu diff01 >= "00:01:00" Và diff01 <= "00:05:00" Và _
diff02 >= "00:01:00" Và diff02 <= "00:05:00" Sau đó
Cells(i, 4).Interior.ColorIndex = 20
Cells(i, 7).Interior.ColorIndex = 20
ElseIf diff01 > "00:05:00" Và diff01 > "00:05:00" Thì
Cells(i, 4).Interior.ColorIndex = 24
Cells(i, 7).Interior.ColorIndex = 24
Khác
'không làm gì cả
Cells(i, 4).Interior.ColorIndex = 0
Cells(i, 7).Interior.ColorIndex = 0
Kết thúc nếu
Kết thúc nếu
Vòng lặp While i < Bộ đếm
Kết thúc Sub



Trả lời:

Thưa ông,

Cảm ơn bạn rất nhiều. Nó thực sự rất hữu ích và cảm ơn vì sự giúp đỡ nhanh chóng.

Trân trọng,

Ravindra D. Havnur



Trả lời:

Xin chào. Chỉ là một ý tưởng thôi...

Tôi thấy bạn đang làm việc với Strings. Bạn có muốn ý tưởng chung sau không?

Dim Diff01 Theo Ngày
Dim Min1 Như Ngày
Dim Min5 Như Ngày

Min1 = TimeSerial(0, 1, 0)
Min5 = TimeSerial(0, 5, 0)

' Một số giá trị thời gian
[A1] = TimeSerial(8, 45, 0) '8:45 Sáng
[A2] = TimeSerial(8, 48, 0) '8:48 Sáng

Diff01 = Cells(2, 1) - Cells(1, 1)

Nếu Diff01 >= Min1 và Diff01 <= Min5 thì
Gỡ lỗi.In "Đúng"
Kết thúc nếu

- - - -

tôi = 3
LÀM
tôi = tôi + 1

'...

Vòng lặp While i < Bộ đếm

Một ý tưởng...

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

>

Đối với R = 4 đến LastRow
'..
Tiếp theo R

Hoặc chỉ cần...

Đối với R = 4 Đến ô (Hàng. Đếm, "A"). Kết thúc (xlUp). Hàng
'..
Tiếp theo R

Đây có phải là lỗi logic không:

Nếu không thì nếu diff01 > "00:05:00" và diff01 > "00:05:00" thì



Trả lời:

Xin chào ông

Cảm ơn sự giúp đỡ. Cả hai chương trình đều hoạt động hoàn hảo.

Trân trọng,

Ravindra D. Havnur

Comments

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ