làm sao để đặt tên biến cho 1 sheet !

Liên hệ QC

khanhexcel01

Thành viên mới
Tham gia
4/6/19
Bài viết
4
Được thích
0
Nhờ các anh chị chỉ giúp em lỗi này ạ. Em mới học code căn bản trong VBA nên không rõ ạ.
Em muốn dùng vòng lặp lấy dữ liệu trong các sheet có tên sheet đã xuất ra trong cột T sheet Info ạ.
Nhưng em đặt thông số cho ts thì lại báo lỗi ạ. Cảm ơn mọi người nhiều ạ.

Sub loadTongNV()

Dim tensh As Worksheet
Dim ts As Object
Dim n As Integer
Dim n1 As Integer
Set wb = ThisWorkbook
'Set sh = wb.Sheets("Time")
Set sh2 = wb.Sheets("TongNV")
Set sh3 = wb.Sheets("Info")

lr32 = sh3.Cells(Cells.Rows.Count, "T").End(xlUp).Row
For n = startrow3 To lr32
ts = sh3.Cells(n, "T").Value
Set sh = wb.Sheets(ts)
sh.Cells(1, "D") = "ok"
Next
Bài đã được tự động gộp:

do các sheet Time có thể tăng lên và giảm đi, và tên cũng khác nhau, nên em phải gọi tên sheet ra mỗi khi load ạ.
 

File đính kèm

  • Test.xlsm
    376.9 KB · Đọc: 9
Upvote 0
Tiết kiệm tài nguyên cho diễn đàn là khi đăng bài cắt bớt code. Code ở bài #1 bị cắt bớt so với code trong file.
Nhìn hình bài #3 là hiểu luôn rồi bác.

Bài #4 viết dài dòng: "Theo tiêu chí tiết kiệm thì phương án sửa lỗi bằng cách bỏ dòng Dim ts As Object cho nhanh".
 
Upvote 0
Thớt hỏi "đặt tên biến cho 1 sheet" mà.
Dim ts As Object à đúng rồi.
Lỗi là tại lúc gán một object thì đáng lẽ phải dùng Set.

For n = startrow3 To lr32
Set ts = wb.Sheets(CStr(sh3.Cells(n, "T").Value))
ts.Cells(1, "D") = "ok"
Next

Nhưng có lẽ thớt không hiểu "đặt tên biến" và object có nghĩa là gì.
 
Upvote 0
Thớt hỏi "đặt tên biến cho 1 sheet" mà.
Dim ts As Object à đúng rồi.
Lỗi là tại lúc gán một object thì đáng lẽ phải dùng Set.

For n = startrow3 To lr32
Set ts = wb.Sheets(CStr(sh3.Cells(n, "T").Value))
ts.Cells(1, "D") = "ok"
Next

Nhưng có lẽ thớt không hiểu "đặt tên biến" và object có nghĩa là gì.
Woaaa, em cảm ơn anh nhiều lắm ạ. Em làm được rồi ạ.
Dạ, em không biết gì về tên biến và object hết luôn ạ. Em search trên mạng nhưng nhiều quá khó hiểu ạ.
Cảm ơn anh nhiều lắm luôn ạ.
 
Upvote 0
Woaaa, em cảm ơn anh nhiều lắm ạ. Em làm được rồi ạ.
Dạ, em không biết gì về tên biến và object hết luôn ạ. Em search trên mạng nhưng nhiều quá khó hiểu ạ.
Cảm ơn anh nhiều lắm luôn ạ.
Thế bài #3 và bài #6 hướng dẫn sai à :rolleyes:
 
Upvote 0
Dạ không có anh ơi, hehe. Em thử cách đó mà không được. Cái em thử cách #7 cái ra luôn ra. hehe
Bài 7 sửa CODE, mà sửa tận 3 dòng code thành 2 dòng mà bạn còn làm được, trong khi bài 2 chỉ sửa KHAI BÁO Dim ts As Object thành Dim ts As String, không sửa một dấu chấm nào của code, mà bạn nói là KHÔNG ĐƯỢC thì muôn đời không khá lên được. Chỉ là gõ lại mà cũng không được thì làm sao tính việc lớn được.
 
Upvote 0
Bài 7 sửa CODE, mà sửa tận 3 dòng code thành 2 dòng mà bạn còn làm được, trong khi bài 2 chỉ sửa KHAI BÁO Dim ts As Object thành Dim ts As String, không sửa một dấu chấm nào của code, mà bạn nói là KHÔNG ĐƯỢC thì muôn đời không khá lên được. Chỉ là gõ lại mà cũng không được thì làm sao tính việc lớn được.
Nhược điểm phổ biến của các bạn ấy là không chịu đọc kỹ hướng dẫn sử dụng trước khi dùng.
 
Upvote 0
Bài 7 sửa CODE, mà sửa tận 3 dòng code thành 2 dòng mà bạn còn làm được, trong khi bài 2 chỉ sửa KHAI BÁO Dim ts As Object thành Dim ts As String, không sửa một dấu chấm nào của code, mà bạn nói là KHÔNG ĐƯỢC thì muôn đời không khá lên được. Chỉ là gõ lại mà cũng không được thì làm sao tính việc lớn được.
1639715549844.png

Em cảm ơn mọi người nhiều ạ, em hiểu được String rồi ạ, do em học cơ khí, mò lung tung code của người khác để sửa lại thôi ạ.
Em sửa lại theo cách bài 3 của anh ấy được rồi ạ. hịc
 
Upvote 0
Web KT

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

Back
Top Bottom