mọi người xem đoạn code này sai ở đâu giúp e cái! (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

haihatinh

Thành viên mới
Tham gia
17/4/09
Bài viết
8
Được thích
0
'Tao trang in
k = 1

For i = tu To den
Sheet6.Cells(8, 24) = i
If Sheet4.Range("w21") > 0 Then
Sheet4.Rows("1:27").Copy
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteValues
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteFormats
Sheet5.Range("F" & k + 9 & ":F" & k + 19).Merge
If k Mod 2 = 0 Then k = k + 28
Else: k = k + 32
End If
Next
Application.ScreenUpdating = True
Sheet5.Activate
Application.CutCopyMode = False
'Tuyf banj chon cachs xem
'Sheet5.PrintPreview
Sheet5.Range("I1").Select
thoat:
End Sub
 
'Tao trang in
k = 1

For i = tu To den
Sheet6.Cells(8, 24) = i
If Sheet4.Range("w21") > 0 Then
Sheet4.Rows("1:27").Copy
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteValues
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteFormats
Sheet5.Range("F" & k + 9 & ":F" & k + 19).Merge
If k Mod 2 = 0 Then k = k + 28
Else: k = k + 32
End If
Next
Application.ScreenUpdating = True
Sheet5.Activate
Application.CutCopyMode = False
'Tuyf banj chon cachs xem
'Sheet5.PrintPreview
Sheet5.Range("I1").Select
thoat:
End Sub
Lỗi tại vị trí màu đỏ đó bạn.
- Thứ nhất: Câu lệnh phải có dạng:
PHP:
If Điều_Kiện Then Lệnh_1 Else Lệnh_2
hoặc
PHP:
If Điều_Kiện Then
    Lệnh_1
Else
    Lệnh_2
End If
- Thứ 2: Sau từ khóa Else không được có dấu ":"
Như vậy, 3 dòng trên có thể thay bằng:
PHP:
If k Mod 2 = 0 Then
    k = k + 28
Else
    k = k + 32
End If
hoặc
PHP:
If k Mod 2 = 0 Then k = k + 28 Else k = k + 32
hoặc gọn gàng hơn là:
PHP:
k = k + IIf(k Mod 2 = 0, 28, 32)
 
Lần chỉnh sửa cuối:
Upvote 0
Code chẳng có gì sai cả, bạn phải nói nó lỗi ra sao chứ?
 
Upvote 0
Public Sub in_bg()
Dim tu, den As Integer
'Xac dinh so in
'tu = Sheet1.Cells(2, 13)
' On Error GoTo thoat
If Sheet6.[X12] = "In tat ca" Then
Sheet6.[X14] = 1
Sheet6.[X15] = Application.WorksheetFunction.Max(Sheet6.Range("A3:A5000"))
End If
'tu = Sheet1.Cells(2, 13)
tu = Sheet6.[X14]
den = Sheet6.[X15]
'Xoa trang in
Sheet5.Range("A:AQ").Clear

Application.ScreenUpdating = False
'Tao trang in
k = 2

For i = tu To den
Sheet6.Cells(8, 24) = i
If Sheet4.Range("w21") > 0 Then
Sheet4.Rows("1:27").Copy
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteValues
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteFormats
Sheet5.Range("F" & k + 9 & ":F" & k + 19).Merge
k = k + IIf(k Mod 2 = 0, 33, 27)
End If
Next
Application.ScreenUpdating = True
Sheet5.Activate
Application.CutCopyMode = False
'Tuyf banj chon cachs xem
'Sheet5.PrintPreview
Sheet5.Range("I1").Select
thoat:
End Sub

khi em chạy thì bị lỗi ở dòng chữ đỏ
và ở bảng chính thì báo lỗi này: can't execute code in break mode
 
Upvote 0
'Tao trang in
k = 2

For i = tu To den
Sheet6.Cells(8, 24) = i
If Sheet4.Range("w21") > 0 Then
Sheet4.Rows("1:27").Copy
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteValues
Sheet5.Cells(k, 1).PasteSpecial Paste:=xlPasteFormats
Sheet5.Range("F" & k + 9 & ":F" & k + 19).Merge
k = k + IIf(k Mod 2 = 0, 33, 27)
End If
Next

khi em chạy thì bị lỗi ở dòng chữ đỏ
và ở bảng chính thì báo lỗi này: can't execute code in break mode
Bạn chụp hộp thoại báo lỗi đưa lên hoặc ghi nội dung báo lỗi thì mới dễ đoán bệnh được (câu thông báo mà bạn cung cấp ở trên chắc chắn không phải của hộp thoại báo lỗi khi chạy code). Mình đang nghĩ tới 2 vấn đề:
1. Vùng đích (27 hàng, kể từ ô Cells(k,1)) có sử dụng Merge cells.
2. Trong vùng đích có ô bị khóa (Locked) và sheet đang bị khóa (Protect Sheet).
 
Upvote 0
Đây chính là code do mình viết, mình cho rằng đến 90% lỗi là do vùng nguồn bạn Merge nên không chép dán được. Các lý do khác rất ít.
Đáng lẽ có file ví dụ hay dẫn chứng lỗi thì mới tìm được. Cái lỗi bạn nêu ra là lỗi chính gây dừng code rồi bạn lại chạy tiếp code nhưng chưa thoát Breack Code
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom