Xin sửa giùm em đoạn code

Liên hệ QC

tqv012006

Thành viên mới
Tham gia
9/6/08
Bài viết
9
Được thích
0
Em thử chạy đoạn code này nhưng bị báo lỗi "subscript out of range". Mong các anh giúp đỡ:


Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Range
Dim iValueCopy1 As String, iValueCopy2 As String
For i = 1 To 100
j = Worksheets("Sheet1").Range("J5").Offset(i)
iValueCopy1 = Worksheets("Sheet1").Range("H5").Offset(i)
iValueCopy2 = Worksheets("Sheet1").Range("I5").Offset(i)
Worksheets("Sheet2").Range("F3").Offset(j) = iValueCopy1
Worksheets("Sheet2").Range("G3").Offset(j) = iValueCopy2
Worksheets("Sheet2").Range("A1").Select
Next i
End Sub
 

File đính kèm

  • NHAC LICH LAM VIEC.7z
    32.1 KB · Đọc: 22
Mã:
[B]Private Sub CommandButton1_Click()[/B]
  Dim i As Integer
  Dim j As Range
  Dim iValueCopy1 As String, iValueCopy2 As String

  For i = 1 To 100
1     j = Worksheets("Sheet1").Range("J5").Offset(i)
     iValueCopy1 = Worksheets("Sheet1").Range("H5").Offset(i)
3     iValueCopy2 = Worksheets("Sheet1").Range("I5").Offset(i)
     Worksheets("Sheet2").Range("F3").Offset(j) = iValueCopy1
5     Worksheets("Sheet2").Range("G3").Offset(j) = iValueCopy2
     Worksheets("Sheet2").Range("A1").Select
 Next i
[B]End Sub       [/B]
Dòng lệnh 1 bạn có hai lỗi

(1) J bạn đã khai báo là 1 biến đối tượng, bạn không thể gán trị cho nó như vậy được mà fải dùng câu lệnh
Set J = Sheets("GPE.COM").Range("DoNguyenBinh")

(2) Trong ba trang tính của bạn, làm gì có trang tính nào tên là "Sheet1"), bạn chỉ có "Sheet3", "NHACLICH" & "CSDL" mà thôi; Bạn cần chú í chỗ này hơn.
(Lỗi này có ở cả các dòng lệnh còn lại bên dưới, trước dòng 7)

Ngoài ra dòng lệnh 4 cũng như 5 có lỗi nghiêm trọng, đó là .Offset(j) trong khi J lại là 1 biến đối tượng kiểu Range!

Những lỗi này sẽ dễ fát hiện ra, nếu bạn khai báo các biến cẩn trọng & tường minh hơn.
Như mình, thì mình sẽ khai chí ít thế này:

Dim iI As Integer
Dim rngJ As Range
( & mình khuyên bạn dõi theo các bài tập mà học viên lớp VBA HN1 đã làm & đưa lên diễn đàn. Mình cũng xin bày tỏ việc rất không ưa đọc những dòng lệnh như 2 dòng lệnh đầu của bạn)
 
Lần chỉnh sửa cuối:
Upvote 0
Trước hết em xin lấy làm biết ơn anh đã hạ cố trả lời cho em. Quả thật em chưa có thời gian nghiên cứu VBA được, do công việc cần gấp để làm mẫu lịch hỗ trợ cho nhân viên quản lý công việc, nên mới mạo muội mày mò. Có gì mong các anh trên diễn đàn thứ lỗi. Em xin trình bày ý đồ của em như sau:
Mục đích:
Sheet "NHACLICH" có tác dụng: nhắc gọi chúc mừng các khách hàng sinh nhật trong ngày và nhắc lịch hẹn khách hàng có trong danh sách CSDL. Sau khi gọi hoặc gặp khách xong sẽ update "ngày hẹn mới" và "nội dung hẹn mới" tại sheet NHACLICH sang sheet CSDL (cột "ngày hẹn" và "nội dung hẹn") chính xác theo khách hàng đã gọi.

Mong anh viết lại giùm em đoạn code. Cám ơn anh rất nhiều.
xin gửi lại file đính kèm
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=57133&d=1293501307
 
Upvote 0
Web KT
Back
Top Bottom