Cách lưu dữ liệu đi theo add-in (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

minhtungph

None
Tham gia
18/9/13
Bài viết
198
Được thích
78
- Chào các bạn, trong quá trình làm việc với add-in mình có một số thắc mắc về add-in, như hình bên dưới thì theo cùng với add-in là object sheet1, mình muốn tận dụng các cell trên sheet1 để lưu trữ các text, các text này có thể là nội dung thông báo tiếng việt hoặc là lưu trữ header dùng cho việc copy header sang workbook mà add-in cần thao tác .... , nhưng hiện tại vẫn chưa thông về vấn đề này, không biết có sử dụng được không, mong các bạn và các anh chị giúp đỡ, gợi hướng cho việc lưu trữ dữ liệu kèm theo add-in, Chân thành cảm ơn.

upload_2018-2-5_8-41-39.png
 
Của bạn ý là add in, thì đương nhiên sẽ không bao giờ có chuyện là không có. (1)

Cái này thì không chắc lắm vì tớ chưa thử được. (2)
(1): Việc này hoàn toàn có thể nếu người ta cố tình như vậy. Chẳng hạn thay vì để CodeName mặc định là Sheet1, Sheet2,... người ta hoàn toàn có thể đặt lại thành S01, S02,... Khi đó thì trong ThisWorkbook sẽ không có đối tượng Sheet1.
(2): Cái này tôi đã kiểm nghiệm. Một thí dụ đơn giản: Tạo 2 Workbook: Wb1 có 2 sheet: Sheet1 (tên trong Excel là A), Sheet2 (B); Wb2 có 2 sheet: Sheet1 (C), Sheet2 (D). Thử đặt đoạn code sau vào Wb1:
Mã:
Sub Test
        Sheet1.Select
End Sub
Chạy code trên trong 2 tình huống:
- Tình huống 1: Wb1 đang được chọn (tức là ThisWorkbook đồng thời là ActiveWorkbook). Kết quả: Sheet A sẽ được chọn.
- Tình huống 2: Wb2 đang được chọn. Kết quả: Báo lỗi, vì Wb1 không được chọn nên đối tượng Sheet1 không thể chọn được.
Tiếp theo, sửa câu lệnh duy nhất trong sub trên thành Sheets(1).Select và chạy lại code trong 2 tình huống như trên. Kết quả: Ở tình huống 1 thì Sheet A được chọn, còn tình huống 2 thì Sheet C được chọn.
 
Upvote 0
(1): Việc này hoàn toàn có thể nếu người ta cố tình như vậy. Chẳng hạn thay vì để CodeName mặc định là Sheet1, Sheet2,... người ta hoàn toàn có thể đặt lại thành S01, S02,... Khi đó thì trong ThisWorkbook sẽ không có đối tượng Sheet1.
(2): Cái này tôi đã kiểm nghiệm. Một thí dụ đơn giản: Tạo 2 Workbook: Wb1 có 2 sheet: Sheet1 (tên trong Excel là A), Sheet2 (B); Wb2 có 2 sheet: Sheet1 (C), Sheet2 (D). Thử đặt đoạn code sau vào Wb1:
Mã:
Sub Test
        Sheet1.Select
End Sub
Chạy code trên trong 2 tình huống:
- Tình huống 1: Wb1 đang được chọn (tức là ThisWorkbook đồng thời là ActiveWorkbook). Kết quả: Sheet A sẽ được chọn.
- Tình huống 2: Wb2 đang được chọn. Kết quả: Báo lỗi, vì Wb1 không được chọn nên đối tượng Sheet1 không thể chọn được.
Tiếp theo, sửa câu lệnh duy nhất trong sub trên thành Sheets(1).Select và chạy lại code trong 2 tình huống như trên. Kết quả: Ở tình huống 1 thì Sheet A được chọn, còn tình huống 2 thì Sheet C được chọn.
Ý 1: trong khi code, việc đổi tên một vài đối tượng là nên tránh, anh đổi thoải mái nhưng khi đã code rồi thì không nên đổi. Mà nếu có đổi thì phải xem lại toàn bộ code nếu không thì sẽ có nguy cơ bị sai. Nếu đã đảm bảo code, object là hợp nhất thì chả sợ lỗi.

Tạm thời coi như có 3 cách để truy cập: name code, name sheet, chỉ mục. 3 cái đều có thể thay đổi tùy ý. name code đanh cho người viết code và nó có độ ổn định cao hơn 2 cái kia. người đung sẵn sàng đổi tên, move sheet trong tabs sheet mà. Trong add in thì sự thay đổi còn đỡ hơn.

Nói thêm là có vô số cách để truy cập sheet, thế nên mới có chuyện " ngồi đếm cách truy cập, bâng khuâng cách ngắn cách dài"


Ý 2 thì đợi anh Tuân với anh ndu số số số test chán chê rồi tính tiếp, như theo em là sai.
 
Upvote 0
Web KT

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

Back
Top Bottom