Lỗi VBA trong MS Office với ActiveCell trong tệp Excel

Mã nguồn gặp vấn đề, lần chạy đầu tiên thì hoạt động bình thường, lần chạy thứ hai thì báo lỗi, các lần chạy sau thì lại hoạt động bình thường. Tôi nghĩ vấn đề nằm ở thuộc tính "ActiveCell" khi sử dụng nó. Cần giúp đỡ để khắc phục lỗi này.

Set oXL = CreateObject("Excel.Application")
Set xlWsh = oXL.Worksheets("Sheet1")
Với xlWsh.Range("H:H")

Nếu ActiveCell.Value = "text" thì
Đặt c = ActiveCell
Ngược lại: Đặt c = .Cells(1)
Kết thúc nếu

Nếu không phải xlWsh.Cells.Find(What:=text2, _
Sau:=Tế bào hoạt động, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False) Is Nothing Then

xlWsh.Cells.Find(What:=text2, _
Sau:=Tế bào hoạt động, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False).Activate

actrow = ActiveCell.Row
Với ActiveCell.Interior
'Đặt màu chữ thành giá trị RGB. Xem hàng Bên trong ở trên để biết thêm các tùy chọn màu sắc khác.
Nếu .ColorIndex = xlNone thì
.Color = RGB(6, 255, 0)
'Đặt phông chữ thành chữ nghiêng'


Kết thúc nếu

Kết thúc bằng




j = 0
Đối với j = 1 đến tmpQtyCount

Chèn mã của bạn vào đây

xlWsh.Cells.FindNext(After:=ActiveCell).Activate

Nếu ActiveCell.Row khác với actrow thì
Với ActiveCell.Interior
'Đặt màu chữ thành giá trị RGB. Xem hàng Bên trong ở trên để biết thêm các tùy chọn màu sắc khác.
Nếu .ColorIndex = xlNone thì
.Color = RGB(6, 255, 0)
'Đặt phông chữ thành chữ nghiêng'

Với ActiveCell
.AddComment
.Comment.Text Text:="Đây là một bình luận"
Kết thúc bằng
Kết thúc nếu

Kết thúc bằng

Khác
Đi đến Dòng 1

Kết thúc nếu


Tiếp theo là j
Dòng 1:
Kết thúc nếu

Kết thúc bằng


xlWsh.Cells.Find(What:=text2, _
Sau:=Tế bào hoạt động, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False).Activate

actrow = ActiveCell.Row
Với ActiveCell.Interior
'Đặt màu chữ thành giá trị RGB. Xem hàng Bên trong ở trên để biết thêm các tùy chọn màu sắc khác.
Nếu .ColorIndex = xlNone thì
.Color = RGB(6, 255, 0)
'Đặt phông chữ thành chữ nghiêng'


Kết thúc nếu

Kết thúc bằng




j = 0
Đối với j = 1 đến tmpQtyCount

Chèn mã của bạn vào đây

xlWsh.Cells.FindNext(After:=ActiveCell).Activate

Nếu ActiveCell.Row khác với actrow thì
Với ActiveCell.Interior
'Đặt màu chữ thành giá trị RGB. Xem hàng Bên trong ở trên để biết thêm các tùy chọn màu sắc khác.
Nếu .ColorIndex = xlNone thì
.Color = RGB(6, 255, 0)
'Đặt phông chữ thành chữ nghiêng'

Với ActiveCell
.AddComment
.Comment.Text Text:="Đây là một bình luận"
Kết thúc bằng
Kết thúc nếu

Kết thúc bằng

Khác
Đi đến Dòng 1

Kết thúc nếu


Tiếp theo là j
Dòng 1:
Kết thúc nếu

Kết thúc bằng




Trả lời:
Bạn nên đăng lại bài này lên diễn đàn lập trình Excel; diễn đàn này dành cho Microsoft Access.

Trả lời:

Tôi biết là nó hoạt động với Excel, nhưng tôi đã viết mã bằng Access. Mã đó có thể vẫn hoạt động nếu tôi viết bằng Excel, nhưng nó lại đến từ Access.

Cảm ơn



Trả lời:

Nó gặp sự cố với lệnh ActiveCell mỗi khi chạy mã.

Lỗi thời gian chạy '91': Biến đối tượng lỗi hoặc biến khối With chưa được thiết lập



Trả lời:

Tôi đã thử bằng cách bỏ qua lỗi và đóng Excel, nhưng trừ khi nó thực sự báo lỗi thì chương trình sẽ không chạy đúng cách.

Có ai biết lý do tại sao lại như vậy không?

Comments

Popular posts from this blog

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ