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
Post a Comment