nguyễn thị Phương
nguyễn thị Phương
Thảo luận 5 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 360 lượt xem

khi minh khai bao biên đối tượng sheet 2 thành tên mới ví dụ tên là data sau

Thầy ơi cho mình hỏi khi minh khai bao biên đối tượng sheet 2 thành tên mới ví dụ tên là data, sau đó mình viết tiêp code ơ sub mới thì vân phải viêt sheet2.range mới ra kêt quả thay vi là data.range là sao ah

Thảo luận 5 câu trả lời
Lượt xem 360 lượt xem
Vỗ tay vỗ tay
nguyễn thị Phương 08:09 - Sep 28, 2020

Việc khai báo biến chính xác thì sẽ dùng được như bạn nói. Ví dụ:

Dim sh as Worksheet

Set sh = Sheet2

sh.Range("A1").Value  = ...

Khi khai báo biến worksheet thì cần chú ý:

- từ worksheet không có chữ s ở cuối

- phải có từ khóa Set  +  tên biến, vì là biến đối tượng nên phải set

Vỗ tay vỗ tay
nguyễn thị Phương 16:10 - Oct 01, 2021

Thấy ơi, mình hiểu câu hỏi trên của bạn này nhưng hiện tại là làm không ra, 

Vd như la:

Sau khi minh làm đặt tên cho sheet 1 ok với code bên dưới

Sub vd01()

Dim n As Worksheet

Set n = Sheet1

n.Name = "data"

n.Range("C2:C8") = 5

End Sub

Mình muốn gán tiếp : mà nếu dùng Data.Range("d5").Value = m thì bị lỗi  như bên dưới còn dùng Sheet1.Range("d5").Value = m thì ok, 



Vỗ tay vỗ tay
nguyễn thị Phương 16:10 - Oct 01, 2021
ở đây theo em hiểu là ở ví dụ 1 sau khi đổi tên thì chỉ giao diện đổi tên trên excel để mình thấy chứ tên sheet thực sự không thay đổi, trừ khi là phải đổi tên sheet trong properties luôn thì mới apply đươc cái code Data.Range("d5").Value = m đúng không thầy
Vỗ tay vỗ tay
nguyễn thị Phương 16:10 - Oct 01, 2021

Chào bạn bạn phải phân biệt rõ sheets name và code name nhé.

Vỗ tay vỗ tay
nguyễn thị Phương 09:10 - Oct 02, 2021

Việc dùng lệnh n.Name = "data" chỉ là đặt tên cho sheet, tên này thuộc về sheet-tab-name.

Còn khi bạn viết Data.Range("D5")... là đang viết cho code-name của Sheet. Nhưng file của bạn không có sheet nào có code name là Data.

Bạn xem lại quy tắc viết code cho đối tượng worksheet để phân biệt code-name với sheet-tab-name nhé.

Như trong ví dụ của bạn thì đoạn code dưới (vd02) phải viết là:

Sheets("Data").Range("D5").Value = m
Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông